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

من موسوعة حسوب
< PHP

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

تتحقَّق الدالة fnmatch()‎ من تطابق اسم ملف محدَّد مع نمط معيّن.

الوصف

bool fnmatch ( string $pattern , string $string [, int $flags = 0 ] )

تتحقَّق هذه الدالة من تطابق السلسلة النصيَّة string المُمرَّرة مع النمط pattern الذي يمكن أن يُستعمل معه محارف البدل الخاصة (wildcard) المُستخدمة في الصدفة.

المعاملات

pattern

النمط المراد مُطابقته مع السلسلة النصيَّة string. يمكن استعمال محارف الصدفة الخاصة (wildcard ويشار إليها أيضًا meta characters) لإنشاء النمط.

string

السلسلة النصيَّة المراد التحقُّق من مطابقتها للنمط pattern. أُنشئت هذه الدالة خصِّيصًا لاستعمالها في مطابقة أسماء الملفات، ومع ذلك يمكن استخدامها مع السلاسل النصيَّة العادية.

قد يعرف بعض المستخدمين المتقدمين طريقة استخدام المحارف الخاصة مثل ? و *، لذا سيكون استخدام الدالة fnmatch()‎ سهلًا موازنةً مع الدالة preg_match()‎.

flags

قيمة هذا المعامل هي واحدةٌ أو أكثر من الرايات الموضَّحة في الجدول التالي، ويمكن جمع أكثر من راية باستعمال المعامل OR الثنائي (|).

الراية الوصف
FNM_NOESCAPE تعطيل محرف التهريب (الخط المائل العكسي).
FNM_PATHNAME الخط المائل (slash) الموجود في السلسلة النصيَّة string يجب أن يُطابق الخط المائل الموجود في النمط pattern المعطى فقط.
FNM_PERIOD النقطة الموجودة في السلسلة النصيَّة يجب أن تتطابق تمامًا مع النقطة الموجودة في النمط المعطى.
FNM_CASEFOLD إهمال حالة الأحرف أثناء عمليَّة المطابقة، وهي جزء من ملحق GNU.

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

تُعاد القيمة TRUE إن وُجد تطابقًا. خلا ذلك، ستُعاد القيمة FALSE.

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

الإصدار الوصف
5.3.0 أصبحت هذه الدالة الآن متاحةً على منصة ويندوز.

أمثلة

المثال 1: التحقق من اسم لون ما باستعمال نمط فيه المحارف الخاصة

<?php
if (fnmatch("*gr[ae]y", $color)) {
  echo "some form of gray ...";
}
?>

ملاحظات

تحذير: هذه الدالة غير متاحة على الأنظمة غير المتوافقة مع معيار POSIX باستثناء نظام ويندوز.

انظر أيضًا

  • الدالة glob()‎: إيجاد المسارات التي تتطابق مع نمط محدَّد.
  • الدالة preg_match()‎: تبحث عن تعابير نمطيَّة في سلسلة نصيَّة.
  • الدالة sscanf()‎: تحلِّل المدخلات من سلسلة نصيَّة وفقًا لتنسيق محدَّد.
  • الدالة printf()‎: تطبع سلسلة نصيَّة بتنسيق محدَّد.
  • الدالة sprintf()‎: تعيد سلسلة نصيَّة مُنسَّقة.

مصادر