Home > Article > Backend Development > Related methods on how to use the glob method to traverse all files in a folder
To traverse all files in a folder, you can generally use the opendir and readdir methods to traverse.
Example: Find all php files in the specified directory (do not search subfolders), the code is as follows:
<?php$path = dirname(__FILE__);$result = traversing($path); print_r($result);function traversing($path){ $result = array(); if($handle = opendir($path)){ while($file=readdir($handle)){ if($file!='.' && $file!='..'){ if(strtolower(substr($file, -4))=='.php'){ array_push($result, $file); } } } } return $result; }?>
If you use the glob method to traverse, you can simplify the code
<?php$path = dirname(__FILE__);$result = glob($path.'/*.php'); print_r($result);?>
Note , glob will return path search The path of the result , for example path='/home/fdipzone', the above example returns
Array( [0] => /home/fdipzone/a.php [1] => /home/fdipzone/b.php [2] => /home/fdipzone/c.php )
. This is different from the results returned by opendir and readdir.
If you just traverse the current directory. It can be changed to this: glob('*.php');
glob syntax description:
array glob ( string $pattern [, int $flags = 0 ] )
glob () The function searches for all file paths matching pattern according to the rules used by the libc glob() function, similar to the rules used by general shells. No abbreviation expansion or parameter substitution is performed. Glob is powerful in using regular path matching.
flags Valid flags are:
GLOB_MARK - Add a slash to each returned item
GLOB_NOSORT - Return the files in their original order of appearance in the directory (not sorted)
GLOB_NOCHECK - Returns the pattern used to search if no files match
GLOB_NOESCAPE - Backslash Not escaping metacharacters
GLOB_BRACE - expands {a,b,c} to match 'a', 'b' or 'c'
GLOB_ONLYDIR - returns only Directory entries matching pattern
GLOB_ERR - Stop and read error messages (e.g. unreadable directories), ignore all errors by default
Example: Use the glob method to traverse all php files in a specified folder (including subfolders)
<?php$path = dirname(__FILE__);$result = array(); traversing($path, $result); print_r($result);function traversing($path, &$result){ $curr = glob($path.'/*'); if($curr){ foreach($curr as $f){ if(is_dir($f)){ array_push($result, $f); traversing($f, $result); }elseif(strtolower(substr($f, -4))=='.php'){ array_push($result, $f); } } } }?>
This article explains how to use the glob method to traverse all files in a folder. Please pay attention to more related content. php Chinese website.
Related recommendations:
Explanation on PHP floating point number comparison method
Export query results to csv method through mysql Explain the performance comparison between
php array_push and $arr[]=$value
The above is the detailed content of Related methods on how to use the glob method to traverse all files in a folder. For more information, please follow other related articles on the PHP Chinese website!