Include dotfiles excluding . and .. special dirs with .[!.]*
<?php
$all_files = array_merge(glob('.[!.]*'), glob('*'));
// or
$all_files = glob('{.[!.],}*', GLOB_BRACE);
?>
(PHP 4 >= 4.3.0, PHP 5, PHP 7, PHP 8)
glob — Find pathnames matching a pattern
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.
The behavior on Unix systems and macOS is determined by the system's
implementation of glob(). On Windows, an implementation that conforms
to the POSIX 1003.2 definition for glob() is used, and it includes
an extension to handle the [!...]
convention for
negating a range.
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
Any of the GLOB_*
constants.
Returns an array containing the matched files/directories, an empty array
if no file matched or false
on error.
Unless GLOB_NOSORT
was used, the names will
be sorted alphanumerically.
Приклад #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
Приклад #2 Example with a more complex pattern
<?php
foreach (glob("path/*/*.{txt,md}", \GLOB_BRACE) as $filename) {
echo "$filename\n";
}
?>
Поданий вище приклад виведе щось схоже на:
path/docs/mailinglist-rules.md path/docs/README.md path/docs/release-process.md path/pear/install-pear.txt path/Zend/README.md
Зауваження: Ця функція незастосовна для роботи з віддаленими файлами, оскільки файл повинен бути доступним через файлову систему сервера.
Зауваження: This function isn't available on some systems (e.g. old Sun OS).