Home  >  Article  >  Backend Development  >  Related methods on how to use the glob method to traverse all files in a folder

Related methods on how to use the glob method to traverse all files in a folder

jacklove
jackloveOriginal
2018-06-09 10:34:402165browse

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!=&#39;.&#39; && $file!=&#39;..&#39;){                if(strtolower(substr($file, -4))==&#39;.php&#39;){
                    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.&#39;/*.php&#39;);
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.&#39;/*&#39;);    if($curr){        foreach($curr as $f){            if(is_dir($f)){
                array_push($result, $f);
                traversing($f, $result);
            }elseif(strtolower(substr($f, -4))==&#39;.php&#39;){
                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!

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn