Include dotfiles excluding . and .. special dirs with .[!.]*
<?php
$all_files = array_merge(glob('.[!.]*'), glob('*'));
// or
$all_files = glob('{.[!.],}*', GLOB_BRACE);
?>
(PHP 4 >= 4.3.0, PHP 5, PHP 7, PHP 8)
glob — Находит файловые пути, которые совпадают с шаблоном
Функция glob() ищет пути, которые совпали
с шаблоном pattern
по правилам
функции glob() стандартной C-библиотеки libc, которые аналогичны
правилам стандартных командных оболочек.
Поведение функции в системах Unix и macOS определяется реализацией
функции glob() в системе. В ОС Windows реализация функции
соответствует определению 1003.2 стандарта POSIX для функции glob() и включает
расширение для обработки соглашения [!...]
для отрицания диапазона.
pattern
Шаблон. Параметр не раскрывает символы тильды и не подставляет параметры.
Специальные символы:
*
— Соответствует нулю или большему количеству символов.
?
— Соответствует ровно одному символу (любому символу).
[...]
— Соответствует одному символу из группы символов.
Символ соответствует символу, который не входит в группу,
если первый символ !
.
\
— Экранирует следующий символ,
кроме случаев, когда указали флаг GLOB_NOESCAPE
.
flags
Константа семейства GLOB_*
.
Функция возвращает массив с совпадениями путей файлов или директорий,
пустой массив, если файлы не совпали, или false
, если возникла ошибка.
Названия отсортируются в буквенно-цифровом порядке, если только
не указали флаг GLOB_NOSORT
.
Пример #1 Способ подмены функцией glob() функции opendir() и дружественных функции
<?php
foreach (glob("*.txt") as $filename) {
echo "Размер файла $filename в байтах — " . filesize($filename) . "\n";
}
?>
Вывод приведённого примера будет похож на:
Размер файла funclist.txt в байтах — 44686 Размер файла funcsummary.txt в байтах — 267625 Размер файла quickref.txt в байтах — 137820
Пример #2 Пример с усложнённым шаблоном
<?php
foreach (glob("path/*/*.{txt,md}", \GLOB_BRACE) as $filename) {
echo "$filename\n";
}
?>
Вывод приведённого примера будет похож на:
path/docs/mailinglist-rules.md path/docs/README.md path/docs/release-process.md path/pear/install-pear.txt path/Zend/README.md
Замечание: Функция неприменима для работы с удалёнными файлами, поскольку файл должен быть доступен через файловую систему сервера.
Замечание: Функция недоступна в системах наподобие старой Sun OS.