Home >Backend Development >PHP Tutorial >php glob implements directory file traversal and finding file paths matching patterns_PHP tutorial
The PHP function glob is used to find the file path that matches the pattern. It mainly discusses the function and usage of the glob() function. Using the glob function to read directories is N times faster than others, because the glob function is a built-in function and is naturally faster to process.
1. Function prototype
array glob ( string pattern [, int flags] )
Note: The glob() function obtains an array and returns an array containing matching files/directories. If an error occurs, return FALSE
Two, version compatible
PHP 4 >= 4.3.0, PHP 5
3. Basic usage and examples of functions
1, match files with .txt suffix in the directory
The code is as follows | Copy code |
$pattern = sql_case("*.pdf"); var_dump(glob($pattern)); ?> |
The code is as follows | Copy code |
$pattern = sql_case("*.pdf");
var_dump(glob($pattern)); ?> |
代码如下 | 复制代码 |
foreach (array_merge(glob("*.pdf"),glob("*.PDF")) as $filename) { echo "$filename n"; } ?> |
The code is as follows | Copy code |
foreach (array_merge(glob("*.pdf"),glob("*.PDF")) as $filename) {
echo "$filename n"; |
代码如下 | 复制代码 |
function listdirs($dir) { static $alldirs = array(); $dirs = glob($dir . '/*', GLOB_ONLYDIR); if (count($dirs) > 0) { foreach ($dirs as $d) $alldirs[] = $d; } foreach ($dirs as $dir) listdirs($dir); return $alldirs; } ?> |
3. Get all subdirectories under the directory
The code is as follows | Copy code | ||||
function listdirs($dir) {
|
The code is as follows | Copy code |
$files = glob('{,.}*', GLOB_BRACE); ?> |
4. Things to note
1. It cannot be used on remote files. The files being checked must be accessed through the server's file system.
2. Using glob("[myfolder]/*.txt") will not match. The solution is glob("[myfolder]/*.txt"). Pay attention to the application of [] characters.
3, followed by the second parameter flags valid mark description
(1) GLOB_MARK - Add a slash
to each returned item
(2) GLOB_NOSORT - Return files in the original order they appear in the directory (not sorted)
(3) GLOB_NOCHECK - Returns the pattern used for searching if no file matches
(4) GLOB_NOESCAPE - backslash does not escape metacharacter
(5) GLOB_BRACE - expand {a,b,c} to match 'a', 'b' or 'c'
(6) GLOB_ONLYDIR - Only directory entries matching the pattern are returned. Note: Before PHP 4.3.3, GLOB_ONLYDIR is not available on Windows or other systems that do not use the GNU C library.
(7) GLOB_ERR - Stop and read error information (such as unreadable directories), ignore all errors by default. Note: GLOB_ERR was added in PHP 5.1.
A typical application of the glob() function is to read data table files, such as obtaining the .sql suffix file in a certain directory. This is very practical in unit testing and can read sql files to rebuild the database. For details, please To participate in the PHP manual, please pay attention to the next issue of the PHP built-in function research series
Other references
The code is as follows | Copy code | ||||
print_r(glob("*.txt")); ?>The output is similar to: [1] => default.php [2] => target.txt [3] => source.txt
[4] => tem1.tmp
[5] => test.htm
[6] => test.ini
[7] => test.php
[8] => test.txt
[9] => test2.txt
)
|