来源:
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}<br/>";
}
//返回当前目录下所有的txt
//file.txt
//info.txt
//phpinfo.txt
...
- glob('.'); // 返回当前目录下的文件,不包括文件夹。
- glob('images/'); // 指定目录扫描所有的文件,包括文件夹,也可以扫描指定的文件类型,如: images/.jpg;
- glob('*'); // 当前目录下所有文件、目录。
遍历目录
function test($path){
if (is_dir($path)){
foreach(glob($path.'/*') as $filename){
if (is_dir($filename)){
test($filename);
}else{
echo "{$filename}<br/>";
}
}
}
}
test('.');