Синтаксис:
Синтаксис функции glob () приведен ниже. Эта функция может принимать два аргумента. Первый аргумент принимает значение шаблона, которое будет использоваться для поиска файла и папки. Второй аргумент является необязательным, он используется для генерации вывода разными способами. Общие символы, которые используются для определения шаблона, и различные типы флагов, которые могут использоваться во втором аргументе этой функции, описаны ниже.
массив glob (строка $ pattern [, int $ flags = 0])Наиболее часто используемые символы в шаблоне
Шаблон | Цель |
---|---|
? | Он используется для соответствия ровно одному символу (любому). |
* | Он используется для сопоставления нуля или более символов. |
\ | Он используется для экранирования символов при использовании флага 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 со следующим скриптом.
В '?????.текст' шаблон используется для поиска текстового файла с пятизначным именем файла. Результатом работы функции glob () является массив, который хранится в переменной, $ files. Значения этой переменной печатаются с использованием foreach петля.
// Считываем конкретные текстовые имена файлов текущего местоположения$ files = glob ("?????.текст");
// Распечатываем имена файлов
foreach ($ files as $ file)
эхо "" . $ файл. "
";
?>
Выход:
Следующий вывод появится после запуска скрипта с сервера. Он показывает, что в текущем местоположении существуют два текстовых файла в соответствии с шаблоном.
Пример 3: прочитать все файлы в текущем местоположении с помощью цикла
В следующем примере выполняется поиск всех типов файлов из текущего местоположения и печать имен файлов в каждой строке с помощью цикла. '*.* ' шаблон используется в функции glob () для поиска любого файла любого типа. Возвращаемое значение функции сохраняется в массиве, $ files. Затем общее количество файлов подсчитывается из результатов поиска. для каждого цикл используется для печати значений массива в каждой строке.
// Считываем все имена файлов в текущем местоположении$ files = glob ("*.* ");
// Подсчитываем общее количество файлов
$ count = count ($ files);
echo "Всего файлов = $ count
";
echo "Это файлы:
";
// Распечатываем имена файлов
foreach ($ files as $ file)
эхо "" . $ файл. "
";
?>
Выход:
Следующий вывод появится после запуска скрипта с сервера. Он показывает, что в текущем местоположении существует шесть файлов.
Пример 4: Поиск файла, который начинается с определенного символа
В следующем примере выполняется поиск в файле PHP, который начинается с символа 'грамм'. Создайте файл PHP со следующим скриптом.
'грамм*.php ' используется как шаблон для поиска файлов. Как и в предыдущих примерах, возвращаемое значение функции glob () сохраняется в массиве, который позже печатается с использованием foreach петля.
// Поиск файла, начинающегося с 'g'$ files = glob ("g *.php ");
// Распечатать файлы
foreach ($ files as $ file)
echo $ file. "
";
?>
Выход:
Следующий вывод появится после запуска скрипта с сервера. Он показывает, что четыре файла PHP существуют в текущем месте, где файлы начинаются с символа 'грамм'.
Пример 5: прочитать все файлы и папки
Шаблон, использованный во всех предыдущих примерах, искал только файлы из текущего местоположения. В следующем примере показан способ поиска по всем файлам и папкам в текущем местоположении. Создайте файл PHP со следующим скриптом.
'*' используется в качестве шаблона в функции glob () для поиска всех файлов и папок. Возвращаемые значения функции сохраняются в массиве, который печатается позже.
// Читаем все файлы и папки в текущем месте$ files = glob ("*");
// Распечатать файлы и папки
foreach ($ files as $ file)
echo $ file. "
";
?>
Выход:
Следующий вывод появится после запуска скрипта с сервера. Он показывает, что в текущем месте существуют пять файлов PHP, три текстовых файла и две папки.
Заключение
В этом руководстве показаны методы поиска любого файла или папки с использованием функции PHP glob (). Файл можно искать по расширению, начальному символу или указав общее количество символов. Будем надеяться, что использование функции glob () в PHP станет понятнее и проще для читателей после практики примеров из этого руководства.