glob
(PHP 4 >= 4.3.0, PHP 5)
glob — Находит файловые пути, совпадающие с шаблоном
Описание
$pattern
[, int $flags
= 0
] )
Функция glob() ищет все пути, совпадающие с
шаблоном pattern
согласно правилам,
используемым в функции glob() библиотеки libc, которые похожи на
правила, используемые большинством распространённых оболочек.
Список параметров
-
pattern
-
Шаблон. Не происходит раскрытие тильды и подстановка параметров.
-
flags
-
Допустимые флаги:
-
GLOB_MARK
- Добавляет слэш к каждой возвращаемой директории. -
GLOB_NOSORT
- Возвращает файлы в том виде, в котором они содержатся в директории (без сортировки) -
GLOB_NOCHECK
- Возвращает шаблон поиска, если с его помощью не был найден ни один файл. -
GLOB_NOESCAPE
- Обратные слэши не экранируют метасимволы. -
GLOB_BRACE
- Раскрывает {a,b,c} для совпадения с 'a', 'b' или 'c'. -
GLOB_ONLYDIR
- Возвращает только директории, совпадающие с шаблоном. -
GLOB_ERR
- Останавливается при ошибках чтения (например, директории без права чтения), по умолчанию ошибки игнорируются.
-
Возвращаемые значения
Возвращает массив, который содержит совпадающие файлы/директории,
пустой массив в случае отсутствия совпадения или FALSE
в
случае ошибки.
Замечание:
На некоторых системах невозможно отличить отсутствие совпадения и ошибку.
Список изменений
Версия | Описание |
---|---|
5.1.0 |
Добавлена константа GLOB_ERR
|
4.3.3 |
Константа GLOB_ONLYDIR стала доступна
на Windows и других системах, не использующих библиотеку
GNU C
|
Примеры
Пример #1 Удобный способ, как при помощи glob() можно заменить opendir() и её друзей.
<?php
foreach (glob("*.txt") as $filename) {
echo "$filename размер " . filesize($filename) . "\n";
}
?>
Результатом выполнения данного примера будет что-то подобное:
funclist.txt размер 44686 funcsummary.txt размер 267625 quickref.txt размер 137820
Примечания
Замечание: Эта функция неприменима для работы с удаленными файлами, поскольку файл должен быть доступен через файловую систему сервера.
Замечание: Эта функция недоступна на некоторых системах (например, старой Sun OS).
Замечание: Флаг
GLOB_BRACE
недоступен на некоторых не GNU-системах, например, Solaris.
Смотрите также
- opendir() - Открывает дескриптор каталога
- readdir() - Получает элемент каталога по его дескриптору
- closedir() - Освобождает дескриптор каталога
- fnmatch() - Проверяет совпадение имени файла с шаблоном
- PHP Руководство
- Функции по категориям
- Индекс функций
- Справочник функций
- Расширения для работы с файловой системой
- Функции для работы с файловой системой
- basename
- chgrp
- chmod
- chown
- clearstatcache
- copy
- delete
- dirname
- disk_free_space
- disk_total_space
- diskfreespace
- fclose
- feof
- fflush
- fgetc
- fgetcsv
- fgets
- fgetss
- file_exists
- file_get_contents
- file_put_contents
- file
- fileatime
- filectime
- filegroup
- fileinode
- filemtime
- fileowner
- fileperms
- filesize
- filetype
- flock
- fnmatch
- fopen
- fpassthru
- fputcsv
- fputs
- fread
- fscanf
- fseek
- fstat
- ftell
- ftruncate
- fwrite
- glob
- is_dir
- is_executable
- is_file
- is_link
- is_readable
- is_uploaded_file
- is_writable
- is_writeable
- lchgrp
- lchown
- link
- linkinfo
- lstat
- mkdir
- move_uploaded_file
- parse_ini_file
- parse_ini_string
- pathinfo
- pclose
- popen
- readfile
- readlink
- realpath_cache_get
- realpath_cache_size
- realpath
- rename
- rewind
- rmdir
- set_file_buffer
- stat
- symlink
- tempnam
- tmpfile
- touch
- umask
- unlink
Коментарии
Include dotfiles excluding . and .. special dirs with .[!.]*
<?php
$all_files = array_merge(glob('.[!.]*'), glob('*'));
// or
$all_files = glob('{.[!.],}*', GLOB_BRACE);
?>