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

jacklove
Release: 2023-03-31 07:40:01
Original
2225 people have browsed it

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;
}?>
Copy after login

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);?>
Copy after login

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
)
Copy after login

. 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 ] )
Copy after login

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);
            }
        }
    }
}?>
Copy after login

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!

Related labels:
source:php.cn
Statement of this Website
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
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template