المكتبة القياسية لـ PHP: نظرة شاملة
PHP هي واحدة من أكثر اللغات شيوعًا لتطوير الويب، وتوفر مكتبتها القياسية للمطورين مجموعة قوية من الحلول الجاهزة. في هذه النظرة الشاملة، سنقوم بتحليل المكونات الرئيسية للمكتبة القياسية لـ PHP بالتفصيل، والتي تسمح بحل المهام بدءًا من معالجة السلاسل النصية البسيطة وصولاً إلى العمل المعقد مع قواعد البيانات وبروتوكولات الشبكة.
1. العمل مع المصفوفات (array_*)
دوال العمل مع المصفوفات هي من بين الأكثر طلبًا في PHP. تحتوي المكتبة القياسية على أكثر من 80 دالة للتعامل مع المصفوفات.
- array_map() — تطبق دالة رد اتصال (callback) على جميع عناصر المصفوفة
- array_filter() — تقوم بتصفية عناصر المصفوفة باستخدام دالة رد اتصال (callback)
- array_reduce() — تختزل المصفوفة بشكل تكراري إلى قيمة واحدة
- array_merge() — تدمج مصفوفة واحدة أو أكثر
- array_search() — تبحث عن قيمة في المصفوفة وتعيد المفتاح
<?php$numbers = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10];
// تصفية الأعداد الزوجية$even = array_filter($numbers, function($n) { return $n % 2 === 0;});
// مضاعفة كل عنصر$doubled = array_map(function($n) { return $n * 2;}, $numbers);
// مجموع كل العناصر$sum = array_reduce($numbers, function($carry, $item) { return $carry + $item;}, 0);
echo "الأعداد الزوجية: " . implode(', ', $even) . "<br>";echo "المضاعفة: " . implode(', ', $doubled) . "<br>";echo "المجموع: $sum";?>2. دوال السلاسل النصية
تقدم PHP مجموعة واسعة من الدوال لمعالجة السلاسل النصية، بما في ذلك العمل مع الترميزات متعددة البايت عبر الإضافة mbstring.
- strlen() / mb_strlen() — طول السلسلة النصية
- strpos() / mb_strpos() — البحث عن سلسلة فرعية
- substr() / mb_substr() — استخراج سلسلة فرعية
- str_replace() — استبدال السلاسل الفرعية
- explode() / implode() — تقسيم/دمج السلاسل النصية
- trim() — إزالة المسافات في البداية والنهاية
<?php$text = " مرحبًا، أيها العالم! PHP رائعة. ";
// إزالة المسافات الزائدة$clean = trim($text);
// استبدال سلسلة فرعية$replaced = str_replace("رائعة", "ممتازة", $clean);
// تقسيم السلسلة النصية إلى كلمات$words = explode(" ", $replaced);
// الحصول على أول 10 أحرف$first10 = mb_substr($clean, 0, 10, 'UTF-8');
echo "النص المنظف: '$clean'<br>";echo "مع الاستبدال: '$replaced'<br>";echo "أول 10 أحرف: '$first10'<br>";echo "عدد الكلمات: " . count($words);?>3. العمل مع التواريخ والوقت (DateTime)
توفر الفئة DateTime ومشتقاتها واجهة موجهة للكائنات للعمل مع التواريخ.
<?php// إنشاء كائن تاريخ$date = new DateTime('2024-12-25 10:30:00');
// التنسيقecho $date->format('Y-m-d H:i:s') . "<br>";
// إضافة فترة زمنية$date->add(new DateInterval('P10D')); // +10 أيامecho "بعد 10 أيام: " . $date->format('Y-m-d') . "<br>";
// الفرق بين التواريخ$now = new DateTime();$diff = $now->diff($date);echo "المتبقي حتى التاريخ: {$diff->days} يومًا";
// العمل مع المناطق الزمنية$date->setTimezone(new DateTimeZone('America/New_York'));echo "<br>في نيويورك: " . $date->format('Y-m-d H:i:s');?>4. الإدخال والإخراج للملفات
تتضمن المكتبة القياسية العديد من الدوال للعمل مع نظام الملفات.
- file_get_contents() — قراءة الملف بأكمله إلى سلسلة نصية
- file_put_contents() — كتابة سلسلة نصية إلى ملف
- fopen(), fread(), fwrite()