PHP 8.4.2 Released!

glob

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

globНаходит файловые пути, которые совпадают с шаблоном

Описание

glob(string $pattern, int $flags = 0): array|false

Функция 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.

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

  • opendir() - Открывает дескриптор каталога
  • readdir() - Получает элемент каталога по его дескриптору
  • closedir() - Закрывает дескриптор каталога
  • fnmatch() - Проверяет совпадение имени файла с шаблоном

Добавить

Примечания пользователей 1 note

up
4
Anonymous
3 years ago
Include dotfiles excluding . and .. special dirs with .[!.]*

<?php
$all_files
= array_merge(glob('.[!.]*'), glob('*'));
// or
$all_files = glob('{.[!.],}*', GLOB_BRACE);
?>
To Top