Функция glob

Функция glob ищет файлы и директории, соответствующие заданному шаблону. В первый параметр передается строка с шаблоном поиска. Второй необязательный параметр задает флаги для изменения поведения функции.

Синтаксис

phpglob(pattern, [flags]);

Флаги

Флаг Описание
GLOB_MARK Добавляет слеш / к каждому возвращаемому каталогу.
GLOB_NOSORT Возвращает файлы в том порядке, в котором они находятся в директории (без сортировки).
GLOB_NOCHECK Возвращает шаблон поиска, если не найдено ни одного совпадения.
GLOB_NOESCAPE Обратные слеши не экранируют метасимволы.
GLOB_BRACE Раскрывает {a,b,c} для поиска по нескольким шаблонам.
GLOB_ONLYDIR Возвращает только директории, соответствующие шаблону.
GLOB_ERR Останавливать при ошибках чтения (например, нет прав доступа).

Пример

Найдем все файлы с расширением .txt в текущей директории:

php<?php
  $res = glob('*.txt');
  print_r($res);
?>

Результат выполнения кода:

php['file1.txt', 'file2.txt', 'notes.txt']

Пример

Найдем все файлы, начинающиеся на 'test' с любым расширением:

php<?php
  $res = glob('test*');
  print_r($res);
?>

Результат выполнения кода:

php['test.php', 'test.txt', 'test_image.jpg']

Пример

Использование флага GLOB_BRACE для поиска по нескольким шаблонам:

php<?php
  $res = glob('*.{php,txt}', GLOB_BRACE);
  print_r($res);
?>

Результат выполнения кода:

php['index.php', 'config.php', 'readme.txt']

Пример

Поиск файлов в поддиректориях с использованием флага GLOB_RECURSE:

php<?php
  $res = glob('**/*.php', GLOB_BRACE|GLOB_RECURSE);
  print_r($res);
?>

Результат выполнения кода:

php['index.php', 'lib/utils.php', 'admin/index.php']

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

  • функцию scandir,
    которая читает содержимое директории
  • функцию file_exists,
    которая проверяет существование файла
  • функцию is_file,
    которая проверяет файл