TGViewer
Пых Пых @phpyh · 7.87K subscribers
Post #908 8.5K
fnmatch

Ты когда-нибудь слышал про такую функцию? Я — нет, недавно случайно её встретил в коде Infection.

По сути, это glob для строковых путей.


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


Грамматика шаблона:
? совпадает с одним символом,
* совпадает с пустой строкой или несколькими символами,
[] определяет набор или диапазон ASCII символов ([0-9], [0-9a-zABC]),
! используется для отрицания внутри [],
\ экранирует спецсимволы.

Важный флаг — FNM_PATHNAME. Он запрещает ?, *, [] совпадать со слешом.


dump(
fnmatch('*/index.php', 'a/b/c/index.php'), // true
fnmatch('*/index.php', 'a/b/c/index.php', FNM_PATHNAME), // false
fnmatch('*/index.php', 'a/index.php', FNM_PATHNAME), // true
);


📁https://www.php.net/manual/ru/function.fnmatch.php

Этот пост был доступен месяц назад в PHPeople
  • 👍 27
  • 👀 10
  • ❤ 6
  • 🤔 3
  • 🤡 2
  • 🔥 1
  • 😱 1
  • 💩 1
  • 🙏 1
More from @phpyh
  1. Sep 15, 2026Сейчас один человек с AI может выполнять работу целого IT-отдела. Только хуёво
  2. Sep 12, 2026Спасибо за заявки! Всем напишу в понедельник. Осталось 1 место.
  3. Sep 11, 2026Хардкорный курс асинхронного PHP https://hardcourse.ru/php/async
  4. Sep 11, 2026Ещё полчасика надо — сайт готов, расписываю программу! 🙏
  5. Sep 10, 2026Краткое содержание: завтра в 12:00 открываю набор на Хардкорный курс асинхронного PHP с уч…
  6. Sep 10, 2026Post #1011
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →