fnmatch() (fnmatch)
تابع fnmatch یک رشته یا نام فایل را با «الگوی وایلدکارد (Wildcard Pattern)» بررسی می کند. وایلدکارد یعنی الگوی ساده با ستاره و براکت، مثل فیلتر جست وجو در گالری گوشی.
تعریف ساده، سینتکس و ورودی ها
فرم کلی fnmatch(pattern, string, flags) است. pattern الگوی شل است. string همان متن یا نام فایل است. flags اختیارهای تطبیق هستند.
<?php
$txt = "My car is a dark color";
if (fnmatch("*col[ou]r", $txt)) {
echo "hmm...";
}
?>
پرچم ها (Flags) و کاربرد سریع
با پرچم ها، تطبیق را دقیق تر می کنی. مثل تنظیمات فیلتر در جست وجوی مدرسه.
FNM_NOESCAPE: بک اسلش فرار ندهد.FNM_PATHNAME: اسلش فقط با اسلش مطابق شود.FNM_PERIOD: نقطه ابتدای متن باید دقیقاً با نقطه الگو بیاید.FNM_CASEFOLD: بدون حساسیت به حروف، سبک GNU.
برای مطالعه بیشتر درباره الگوی وایلدکارد همین بخش را ببین.
گام های عملی
- الگوی مناسب بنویس. مثال:
*col[ou]r. - متن یا نام فایل را آماده کن.
fnmatchرا فراخوانی کن و نتیجه را چک کن.
نکته: خروجی بولی است؛ true یعنی مطابق است.
جمع بندی سریع
- fnmatch با الگوی شل مقایسه می کند.
- پرچم ها رفتار را دقیق می کنند.
- نتیجه فقط true یا false است.
- برای مسیرها از FNM_PATHNAME استفاده کن.