Dutch PHP Conference 2025 - Call For Papers

glob

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

globFind pathnames matching a pattern

Опис

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

The glob() function searches for all the pathnames matching pattern according to the rules used by the libc glob() function, which is similar to the rules used by common shells.

Параметри

pattern

The pattern. No tilde expansion or parameter substitution is done.

Special characters:

  • * - Matches zero or more characters.
  • ? - Matches exactly one character (any character).
  • [...] - Matches one character from a group of characters. If the first character is !, matches any character not in the group.
  • \ - Escapes the following character, except when the GLOB_NOESCAPE flag is used.

flags

Valid flags:

GLOB_BRACE (int)
Expands {a,b,c} to match 'a', 'b', or 'c'

Зауваження: GLOB_BRACE is not available on some non GNU systems, like Solaris or Alpine Linux.

GLOB_ERR (int)
Stop on read errors (like unreadable directories), by default errors are ignored.
GLOB_ONLYDIR (int)
Return only directory entries which match the pattern
GLOB_MARK (int)
Adds a slash (a backslash on Windows) to each directory returned
GLOB_NOSORT (int)
Return files as they appear in the directory (no sorting). When this flag is not used, the pathnames are sorted alphabetically
GLOB_NOCHECK (int)
Return the search pattern if no files matching it were found
GLOB_NOESCAPE (int)
Backslashes do not quote metacharacters
GLOB_AVAILABLE_FLAGS (int)
All GLOB_* flags combined. Equivalent to 0 | GLOB_BRACE | GLOB_MARK | GLOB_NOSORT | GLOB_NOCHECK | GLOB_NOESCAPE | GLOB_ERR | GLOB_ONLYDIR

Значення, що повертаються

Returns an array containing the matched files/directories, an empty array if no file matched or false on error.

Зауваження:

On some systems it is impossible to distinguish between empty match and an error.

Приклади

Приклад #1 Convenient way how glob() can replace opendir() and friends.

<?php
foreach (glob("*.txt") as $filename) {
echo
"$filename size " . filesize($filename) . "\n";
}
?>

Поданий вище приклад виведе щось схоже на:

funclist.txt size 44686
funcsummary.txt size 267625
quickref.txt size 137820

Примітки

Зауваження: Ця функція незастосовна для роботи з віддаленими файлами, оскільки файл повинен бути доступним через файлову систему сервера.

Зауваження: This function isn't available on some systems (e.g. old Sun OS).

Прогляньте також

add a note

User Contributed Notes 1 note

up
5
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