PHP glob—寻找与模式匹配的文件路径

来源:

https://www.jb51.net/article/58587.htm

glob(string \$pattern, int \$flags = 0):array|false
此函数不能作用远程文件。
  glob() 函数依照 libc glob() 函数使用的规则寻找所有与 pattern 匹配的文件路径,类似于一般 shells 所用的规则一样。
参数:

  • pattern 匹配模式。不进行缩写扩展或参数替代。
    特殊字符:
  • 匹配零个或多个字符
    ? 只匹配单个字符(任意字符)
    [...] 匹配一组字符中的一个字符。如果第一个字符是!,则为否定模式,即匹配不在这组字符中的任意字符。
    \ 只要没有使用GLOB_NOESCAPE标记,该字符会转义后面的字符
  • flags 有效标记
    GLOB_MARK 在每个返回的项目中加一个斜线
    GLOB_NOSORT 按照文件在目录中出现的原始顺序返回(不排序)
    GLOB_NOCHECK 如果没有文件匹配则返回用于搜索的模式
    GLOB_BRACE 扩充{a,b,c}来匹配'a','b'或'c'
    GLOB_ONLYDIR 仅返回与模式匹配的目录项
    GLOB_NOESCAPE 反斜线不转义元字符
    GLOB_ERR 停止并读取错误信息(比如说不可读的目录),默认忽略所有错误

返回值:返回包含有匹配文件和目录的数组,没有匹配文件时返回空数组,出错返回false。

// 获取当前目录下所有.txt类型的文件
foreach(glob('*.txt') as $filename){
     echo "{$filename}
"; } //返回当前目录下所有的txt //file.txt //info.txt //phpinfo.txt ...
  1. glob('.'); // 返回当前目录下的文件,不包括文件夹。
  2. glob('images/'); // 指定目录扫描所有的文件,包括文件夹,也可以扫描指定的文件类型,如: images/.jpg;
  3. glob('*'); // 当前目录下所有文件、目录。

遍历目录

function test($path){
    if (is_dir($path)){
        foreach(glob($path.'/*') as $filename){
            if (is_dir($filename)){
                test($filename);
            }else{
                echo "{$filename}
"; } } } } test('.');

你可能感兴趣的:(PHP glob—寻找与模式匹配的文件路径)