Функция glob() – это встроенная функция PHP, которая используется для поиска определенных файлов или папок на основе шаблона. Он возвращает имена файлов и папок в массиве, соответствующем шаблону. Как эту функцию можно использовать для поиска определенных файлов или папок, показано в этом руководстве.
Синтаксис:
Синтаксис функции glob() приведен ниже. Эта функция может принимать два аргумента. Первый аргумент принимает значение шаблона, который будет использоваться для поиска файла и папки. Второй аргумент является необязательным и используется для генерации вывода разными способами. Общие символы, которые используются для определения шаблона, и различные типы флагов, которые могут использоваться во втором аргументе этой функции, описаны ниже.
Наиболее часто используемые символы в узоре
Шаблон | Цель |
---|---|
? | Он используется для соответствия ровно одному символу (любому). |
* | Он используется для сопоставления нуля или более символов. |
\ | Он используется для экранирования символов при использовании флага GLOB_NOESCAPE. |
[…] | Он используется для соответствия диапазону символов. |
Значения флагов
Следующие значения флагов могут использоваться в необязательном аргументе функции glob().
Значение | Цель |
---|---|
GLOB_MARK | Он добавляет косую черту к каждому возвращаемому элементу. |
GLOB_NOSORT | Он возвращает несортированные файлы, которые появляются в каталоге. |
GLOB_NOCHECK | Он возвращает шаблон поиска, если совпадение не найдено. |
GLOB_NOESCAPE | Он использует обратную косую черту и не цитирует метасимволы. |
GLOB_BRACE | Он расширяет символы из группы до соответствия. |
GLOB_ONLYDIR | Он возвращает список каталогов, который соответствует только шаблону. |
GLOB_ERR | Он используется для остановки при возникновении ошибки. |
Пример 1. Прочтите все файлы PHP с помощью символа ‘*’
В следующем примере показан способ поиска всех файлов PHP в текущем местоположении с использованием шаблона ‘*.php’. Создайте файл PHP со следующим скриптом.
Шаблон будет искать любое имя файла с расширением PHP. Возвращаемое значение функции – это массив, который будет напечатан как вывод.
// Распечатать список текстовых файлов текущей директории
print_r(glob(“*.php”));
?>
Вывод:
Следующий вывод появится после запуска сценария с сервера. Он показывает, что в текущем местоположении существует пять файлов PHP.
Пример 2: читать определенные текстовые файлы с помощью символа ‘?’ условное обозначение
В следующем примере выполняется поиск всех текстовых файлов, содержащих имя файла из пяти символов. Создайте файл PHP со следующим скриптом.
«?????.txt» шаблон используется для поиска текстового файла с именем файла пять символов. Результатом функции glob() является массив, который хранится в переменной $files. Значения этой переменной печатаются с помощью цикла foreach.
// Чтение конкретных текстовых имен файлов из текущего местоположения
$ files = glob(“?????. txt”) ;
// Вывести имена файлов
foreach ($files as $file) {
echo “<b>” . $file. “</b> <br />”;
}
?>
Вывод:
Вывод показывает, что в текущем местоположении существуют два текстовых файла согласно шаблону.
Пример 3: Прочитать все файлы в текущем местоположении с помощью цикла
В следующем примере выполняется поиск всех типов файлов из текущего местоположения и вывод имен файлов в каждой строке с помощью цикла. Шаблон ‘*.*’ используется в функции glob() для поиска любого файла любого типа. Возвращаемое значение функции сохраняется в массиве $files. Затем по результатам поиска подсчитывается общее количество файлов. Цикл foreach используется для печати значений массива в каждой строке.
// Прочитать все имена файлов в текущем местоположении
$files = glob(“*.*”) ;
// Подсчитать общее количество файлов
$count = count ($files) ;
echo “Всего файлов = <b> $count </b> <br/> <br/>” ;
echo “Это файлы: <br />”;
// Вывести имена файлов
foreach ( $ files as $ file ) {
echo “<b>”.$files.”</b><br/>”;
}
?>
Вывод:
Вывод появится после запуска сценария с сервера и показывает, что в текущем местоположении существует шесть файлов.
Пример 4: Поиск файла, который начинается с определенного символа
В следующем примере выполняется поиск в файле PHP, который начинается с символа «g». Создайте файл PHP со следующим скриптом.
‘g*.php’ используется в качестве шаблона для поиска файлов. Как и в предыдущих примерах, возвращаемое значение функции glob() сохраняется в массиве, который позже печатается с помощью цикла foreach.
// Поиск файла начинается с ‘g’
$files = glob(“g*.php”);
// Распечатать файлы
foreach ($files as $file) {
echo $file. “<br />”;
}
?>
Вывод:
Вывод показывает, что четыре файла PHP существуют в текущем месте, где файлы начинаются с символа ‘g’.
Пример 5: прочитать все файлы и папки
Шаблон, использованный во всех предыдущих примерах, искал файлы только из текущего местоположения. В следующем примере показан способ поиска по всем файлам и папкам в текущем местоположении. Создайте файл PHP со следующим скриптом.
‘*’ используется как образец в функции glob() для поиска всех файлов и папок. Возвращаемые значения функции сохраняются в массиве, который печатается позже.
// Прочитать все файлы и папки текущего местоположения
$files = glob(“*”);
// Распечатать файлы и папки
foreach ($files as $file) {
echo $file. “<br />”;
}
?>
Вывод:
Следующий вывод после запуска сценария с сервера показывает, что в текущем местоположении существуют пять файлов PHP, три текстовых файла и две папки.
Заключение
В этой статье показаны методы поиска любого файла или папки с использованием функции glob() в PHP. Файл можно искать по расширению, начальному символу или указав общее количество символов. Будем надеяться, что использование функции glob() в PHP будет более понятным и легким для читателей после практики примеров из этого руководства.