المكتبة القياسية لـ PHP: نظرة شاملة
المكتبة القياسية لـ PHP (Standard PHP Library, SPL) هي مجموعة من الكلاسات والواجهات والدوال المضمنة المتوفرة في كل توزيعة PHP دون الحاجة إلى تثبيت إضافات إضافية. تغطي المجالات الرئيسية: معالجة النصوص، المصفوفات، نظام الملفات، التواريخ، التعبيرات المنتظمة، بالإضافة إلى هياكل البيانات والمكررات. في هذه المقالة، سنشرح بالتفصيل المكونات الأساسية للمكتبة القياسية مع أمثلة عملية.
1. دوال التعامل مع النصوص
توفر PHP عشرات الدوال المضمنة لمعالجة النصوص. دعنا نستعرض الأكثر استخداماً:
strlen()— تعيد طول النص.strpos()— تجد موضع أول ظهور لنص فرعي.substr()— تستخرج جزءاً من النص.str_replace()— تستبدل كل ظهورات النص الفرعي.explode()وimplode()— تقسم/تدمج النصوص باستخدام فاصل.
<?php$text = "مرحباً بالعالم! أهلاً بك في PHP.";echo strlen($text); // 35echo strpos($text, "بالعالم"); // 8echo substr($text, 0, 7); // "مرحباً"echo str_replace("بالعالم", "الكون", $text); // "مرحباً بالكون! أهلاً بك في PHP."print_r(explode(" ", $text)); // Array ( [0] => مرحباً [1] => بالعالم! [2] => أهلاً [3] => بك [4] => في [5] => PHP. )?>2. دوال التعامل مع المصفوفات
المصفوفات هي أساس PHP. تتضمن المكتبة القياسية دوالاً قوية لمعالجتها:
array_map()— تطبق دالة استدعاء على كل عنصر.array_filter()— تصفي العناصر وفق شرط.array_merge()— تدمج المصفوفات.array_keys()وarray_values()— تحصل على المفاتيح/القيم.sort()وrsort()— ترتب المصفوفة.
<?php$numbers = [1, 2, 3, 4, 5, 6];// مضاعفة كل عنصر$doubled = array_map(fn($n) => $n * 2, $numbers);print_r($doubled); // [2, 4, 6, 8, 10, 12]
// الاحتفاظ فقط بالأعداد الزوجية$even = array_filter($numbers, fn($n) => $n % 2 === 0);print_r($even); // [1 => 2, 3 => 4, 5 => 6]
$merged = array_merge(['a' => 1, 'b' => 2], ['c' => 3, 'd' => 4]);print_r($merged); // ['a' => 1, 'b' => 2, 'c' => 3, 'd' => 4]?>3. التعامل مع الملفات ونظام الملفات
في PHP دوال لقراءة وكتابة وإدارة الملفات دون مكتبات خارجية:
fopen(),fwrite(),fread(),fclose()— عمل منخفض المستوى.file_get_contents()وfile_put_contents()— عمليات بسيطة.file_exists(),is_dir(),mkdir()— التحقق من وجود وإنشاء المجلدات.scandir()— تحصل على قائمة الملفات في مجلد.
<?php// الكتابة إلى ملف$data = "Hello, file!";file_put_contents('example.txt', $data);
// القراءة من ملف$content = file_get_contents('example.txt');echo $content; // Hello, file!
// إنشاء مجلدif (!file_exists('uploads')) { mkdir('uploads', 0755, true);}
// قائمة الملفات$files = scandir('.');print_r($files);?>4. التعامل مع التاريخ والوقت
الكلاس DateTime والدوال date(), time() تسمح بمعالجة الطوابع الزمنية:
<?php// التاريخ الحاليecho date('Y-m-d H:i:s'); // 2025-03-25 14:30:00
// التعامل مع DateTime$date = new DateTime('2025-12-31');$date->modify('+1 month');echo $date->format('d.m.Y'); // 31.01.2026
// الفرق بين التواريخ$now = new DateTime