fnmatch

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

fnmatchПроверяет совпадение имени файла с шаблоном

Описание

fnmatch(string $pattern, string $filename, int $flags = 0): bool

fnmatch() проверяет, совпадает ли переданный параметр filename с указанным шаблоном подстановок оболочки pattern.

Список параметров

pattern

Шаблон подстановки оболочки операционной системы.

filename

Проверяемая строка. Данная функция особенно полезна для имён файлов, но также может быть использована с обычными строками.

Среднестатистический пользователь знаком с подстановками оболочки, как минимум с самыми простыми из них - '?' и '*', так что использование fnmatch() вместо preg_match() для поиска в пользовательской части сайта может быть намного удобнее для пользователей, не являющихся программистами.

flags

Значением параметра flags может быть любая комбинация следующих флагов, объединённых с помощью бинарного оператора ИЛИ (|).

Перечень возможных флагов для функции fnmatch()
Флаг Описание
FNM_NOESCAPE Отключить экранирование обратных слешей.
FNM_PATHNAME Слеш в строке совпадает только со слешем в указанном шаблоне.
FNM_PERIOD Ведущая точка в строке должна точно совпадать с точкой в указанном шаблоне.
FNM_CASEFOLD Совпадение без учёта регистра. Является частью расширения GNU.

Возвращаемые значения

При совпадении возвращает true, иначе возвращает false.

Примеры

Пример #1 Проверяет соответствие цвета шаблону подстановки

<?php
if (fnmatch("*gr[ae]y", $color)) {
echo
"какая-то форма серого цвета ...";
}
?>

Примечания

Внимание

На данный момент эта функция недоступна на POSIX-несовместимых системах, исключая Windows.

Смотрите также

  • glob() - Находит файловые пути, совпадающие с шаблоном
  • preg_match() - Выполняет проверку на соответствие регулярному выражению
  • sscanf() - Разбирает строку в соответствии с заданным форматом
  • printf() - Выводит отформатированную строку
  • sprintf() - Возвращает отформатированную строку