PHP: Hypertext Preprocessor (original) (raw)
glob
(PHP 4 >= 4.3.0, PHP 5, PHP 7, PHP 8)
glob — Find pathnames matching a pattern
Description
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.
Parameters
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.{a,b,c}
- Matches one string from a group of strings delimited by a comma when the[GLOB_BRACE](filesystem.constants.php#constant.glob-brace)
flag is used.\
- Escapes the following character, except when the[GLOB_NOESCAPE](filesystem.constants.php#constant.glob-noescape)
flag is used.
flags
Any of the [GLOB_*](filesystem.constants.php#constant.glob-available-flags)
constants.
Return Values
Returns an array containing the matched files/directories, an empty array if no file matched or [false](reserved.constants.php#constant.false)
on error. Unless GLOB_NOSORT
was used, the names will be sorted alphanumerically.
Examples
Example #1 Convenient way how glob() can replaceopendir() and friends.
<?php foreach (glob("*.txt") as $filename) { echo "$filename size " . filesize($filename) . "\n"; } ?>
The above example will output something similar to:
funclist.txt size 44686 funcsummary.txt size 267625 quickref.txt size 137820
Example #2 Example with a more complex pattern
<?php foreach (glob("path/*/*.{txt,md}", \GLOB_BRACE) as $filename) { echo "$filename\n"; } ?>
The above example will output something similar to:
path/docs/mailinglist-rules.md path/docs/README.md path/docs/release-process.md path/pear/install-pear.txt path/Zend/README.md
Notes
Note: This function will not work onremote files as the file to be examined must be accessible via the server's filesystem.
Note: This function isn't available on some systems (e.g. old Sun OS).
See Also
- opendir() - Open directory handle
- readdir() - Read entry from directory handle
- closedir() - Close directory handle
- fnmatch() - Match filename against a pattern
Found A Problem?
4 years ago
`Include dotfiles excluding . and .. special dirs with .[!.]*
`
4 months ago
`Files from the directory and its subdirectories (one level):
Two levels:
`
2 months ago
`The simplest recursive glob:
`