(PHP 4 >= 4.3.0, PHP 5, PHP 7, PHP 8)
glob — Находит файловые пути, совпадающие с шаблоном
$pattern
, int $flags
= 0): array|false
Функция glob() ищет все пути, совпадающие с
шаблоном pattern
согласно правилам,
используемым в функции glob() библиотеки libc, которые похожи на
правила, используемые большинством распространённых оболочек.
pattern
Шаблон. Не происходит раскрытие тильды и подстановка параметров.
Специальные символы:
*
- Соответствует нулю или большему количеству символов.
?
- Соответствует ровно одному символу (любому символу).
[...]
- Соответствует одному символу из группы. Если первый символ !
,
то соответствует любому символу, не входящему в группу
\
- Экранирует следующий символ,
кроме случаев, когда
используется флаг GLOB_NOESCAPE
.
flags
Допустимые флаги:
GLOB_MARK
- Добавляет слеш (обратный слеш в Windows) к каждой возвращаемой директории.
GLOB_NOSORT
- Возвращает файлы в том виде, в
котором они содержатся в директории (без сортировки). Если этот флаг
не указан, то имена сортируются по алфавиту.
GLOB_NOCHECK
- Возвращает шаблон поиска, если
с его помощью не был найден ни один файл.
GLOB_NOESCAPE
- Обратные слеши не экранируют
метасимволы.
GLOB_BRACE
- Раскрывает {a,b,c} для совпадения с
'a', 'b' или 'c'.
GLOB_ONLYDIR
- Возвращает только директории,
совпадающие с шаблоном.
GLOB_ERR
- Останавливается при ошибках чтения
(например, директории без права чтения), по умолчанию ошибки
игнорируются.
Замечание: Флаг
GLOB_BRACE
недоступен на некоторых не GNU-системах, например, Solaris или Alpine Linux.
Возвращает массив, который содержит совпадающие файлы/директории,
пустой массив в случае отсутствия совпадения или false
в
случае ошибки.
Замечание:
На некоторых системах невозможно отличить отсутствие совпадения и ошибку.
Пример #1 Удобный способ, как при помощи glob() можно заменить opendir() и её аналоги.
<?php
foreach (glob("*.txt") as $filename) {
echo "$filename размер " . filesize($filename) . "\n";
}
?>
Результатом выполнения данного примера будет что-то подобное:
funclist.txt размер 44686 funcsummary.txt размер 267625 quickref.txt размер 137820
Замечание: Эта функция неприменима для работы с удалёнными файлами, поскольку файл должен быть доступен через файловую систему сервера.
Замечание: Функция недоступна на некоторых системах (например, старой Sun OS).