(PHP 4 >= 4.3.0, PHP 5, PHP 7, PHP 8)
glob — 寻找与模式匹配的文件路径
$pattern
, int $flags
= 0
) : array
glob() 函数依照 libc glob() 函数使用的规则寻找所有与
pattern
匹配的文件路径,类似于一般 shells
所用的规则一样。
pattern
匹配模式(pattern)。 不进行缩写扩展或参数替代。
特殊字符:
*
- 匹配零个或多个字符。
?
- 只匹配单个字符(任意字符)。
[...]
- 匹配一组字符中的一个字符。
如果第一个字符是 !
,则为否定模式,
即匹配不在这组字符中的任意字符。
\
- 只要没有使用 GLOB_NOESCAPE
标记,该字符会转义后面的字符。
flags
有效标记有:
GLOB_MARK
- 在每个返回的项目中加一个斜线
GLOB_NOSORT
- 按照文件在目录中出现的原始顺序返回(不排序)
GLOB_NOCHECK
- 如果没有文件匹配则返回用于搜索的模式
GLOB_NOESCAPE
- 反斜线不转义元字符
GLOB_BRACE
- 扩充 {a,b,c} 来匹配 'a','b' 或 'c'
GLOB_ONLYDIR
- 仅返回与模式匹配的目录项
GLOB_ERR
- 停止并读取错误信息(比如说不可读的目录),默认的情况下忽略所有错误
返回包含有匹配文件和目录的数组,没有匹配文件时返回空数组,出错返回 false
。
注意:
在个别操作系统上,无法区分是否为空匹配或错误。
示例 #1 怎样用 glob() 方便地替代 opendir() 和相关函数
<?php
foreach (glob("*.txt") as $filename) {
echo "$filename size " . filesize($filename) . "\n";
}
?>
以上例程的输出类似于:
funclist.txt size 44686 funcsummary.txt size 267625 quickref.txt size 137820
注意: 此函数不能作用于远程文件,被检查的文件必须是可通过服务器的文件系统访问的。
注意: 此函数在一些系统上还不能工作(例如一些旧的 Sun OS)。
注意:
GLOB_BRACE
在一些非 GNU 系统上无效,比如 Solaris。