الدالة glop()‎ في PHP

من موسوعة حسوب
< PHP
(فرق) → مراجعة أقدم | المراجعة الحالية (فرق) | مراجعة أحدث ← (فرق)

(PHP 4 >= 4.3.0, PHP 5, PHP 7)

تبحث الدالة glob()‎ عن مسارات محدَّدة لملفات أو مجلَّدات والتي تتطابق مع نمط مُعطى.

الوصف

array glob ( string $pattern [, int $flags = 0 ] )

تبحث هذه الدالة عن جميع المسارات التي تُطابق النمط pattern وفقًا للقواعد التي تستخدمها المكتبة libc للدالة glob()‎، والتي تشبه نظيرتها المستخدمة من قبل أشهر الصدفات (shells).

المعاملات

pattern

التعبير النمطي المُعطى. الرمز ~ (المَدَّة [tilde]) غير مدعوم، كما أنَّه لا يُجرى أي عملية استبدال للمعاملات.

flags

يمكن أن تكون قيمة هذا المعامل واحدة أو أكثر من الرايات التالية:

  • GLOB_MARK: إضافة محرف الخط المائل (slash) إلى اسم كل مجلد عند إعادة القيمة.
  • GLOB_NOSORT: إعادة أسماء الملفات مثلما تظهر في المجلد (دون ترتيب). إن لم تُستعمل هذه الراية، فستُرتَّب المسارات هجائيًّا.
  • GLOB_NOCHECK: إعادة النمط الذي يُبحث عنه عندما لا يُعثر على أي ملف مطابق لهذا النمط.
  • GLOB_NOESCAPE: عدم تهريب الخطوط المائلة العكسيَّة (backsalshes) للمحارف الخاصَّة (metacharacters).
  • GLOB_BRACE: استعمال القوسين الحاضنتين لتوسيع مجال المطابقة مثل استعمال النمط {a,b,c} لمطابقة المحرف 'a' أو المحرف 'b' أو المحرف 'c'.
  • GLOB_ONLYDIR: إعادة المسارات الخاصَّة بالمجلدات فقط والتي تُطابق النمط المعطى.
  • GLOB_ERR: التوقف عند ظهور أي خطأ (مثل مجلدات غير قابلة للقراءة) إذ يتم تجاهل الأخطاء افتراضيًّا.

القيم المعادة

تُعاد مصفوفة تحتوي على الملفات أو المجلَّدات المتطابقة مع التعبير النمطي المعطى أو مصفوفة فارغة عند عدم العثور على أي نتيجة تطابق التعبير النمطي أو القيمة FALSE عند وجود أي خطأ.

ملاحظة: من الصعب جدًا في بعض الأنظمة التمييز بين حالة عدم العثور على نتائج وبين حالة وجود خطأ.

سجل التغييرات

الإصدار الوصف
5.1.0 إضافة الراية GLOB_ERR.

أمثلة

المثال 1: طريقة جيدة تظهر كيف أنَّه يمكن للدالة glob()‎ أن تحلُّ مكان الدالة opendir()‎ وما يشبهها

<?php
foreach (glob("*.txt") as $filename) {
    echo "$filename size " . filesize($filename) . "\n";
}
?>

سيُظهر المثال السابق نتيجة شبيهة بالتالي:

funclist.txt size 44686
funcsummary.txt size 267625
quickref.txt size 137820

ملاحظات

  • لن تُنفَّذ هذه الدالة على الملفات البعيدة إذ يجب أن يكون الملف قابلًا للوصول عبر نظام ملفات الخادم.
  • هذه الدالة غير متاحة على بعض الأنظمة مثل نظام SunOS.
  • الراية GLOB_BRACE غير متاحة على بعض الأنظمة التي ليست من أنظمة غنو (GNU systems) مثل نظام Solaris.

انظر أيضًا

  • الدالة opendir()‎: تفتح مجلَّدًا محدَّدًا.
  • الدالة readdir()‎: تقرأ محتويات المجلَّد.
  • الدالة closedir()‎: تغلق مجلَّدًا مفتوحًا.
  • الدالة fnmatch()‎: تطابق اسم ملف مع تعبير نمطي محدَّد.

مصادر