(PHP 4 >= 4.3.0, PHP 5)
glob — 寻找与模式匹配的文件路径
$pattern
[, int $flags
] )
glob() 函数依照 libc glob() 函数使用的规则寻找所有与
pattern
匹配的文件路径,类似于一般 shells
所用的规则一样。不进行缩写扩展或参数替代。
返回一个包含有匹配文件/目录的数组。如果出错返回 FALSE
。
有效标记为:
GLOB_MARK
- 在每个返回的项目中加一个斜线
GLOB_NOSORT
- 按照文件在目录中出现的原始顺序返回(不排序)
GLOB_NOCHECK
- 如果没有文件匹配则返回用于搜索的模式
GLOB_NOESCAPE
- 反斜线不转义元字符
GLOB_BRACE
- 扩充 {a,b,c} 来匹配 'a','b' 或 'c'
GLOB_ONLYDIR
- 仅返回与模式匹配的目录项
Note: 在 PHP 4.3.3 版本之前
GLOB_ONLYDIR
在 Windows 或者其它不使用 GNU C 库的系统上不可用。
GLOB_ERR
- 停止并读取错误信息(比如说不可读的目录),默认的情况下忽略所有错误
Note:
GLOB_ERR
是 PHP 5.1 添加的。
Example #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
Note: 此函数不能作用于远程文件,被检查的文件必须是可通过服务器的文件系统访问的。
pattern
The pattern. No tilde expansion or parameter substitution is done.
flags
Valid flags:
GLOB_MARK
- Adds a slash to each directory returned
GLOB_NOSORT
- Return files as they appear in the
directory (no sorting)
GLOB_NOCHECK
- Return the search pattern if no
files matching it were found
GLOB_NOESCAPE
- Backslashes do not quote
metacharacters
GLOB_BRACE
- Expands {a,b,c} to match 'a', 'b',
or 'c'
GLOB_ONLYDIR
- Return only directory entries
which match the pattern
GLOB_ERR
- Stop on read errors (like unreadable
directories), by default errors are ignored.
Returns an array containing the matched files/directories, an empty array
if no file matched or FALSE
on error.
Note:
On some systems it is impossible to distinguish between empty match and an error.
版本 | 说明 |
---|---|
5.1.0 |
GLOB_ERR was added
|
4.3.3 |
GLOB_ONLYDIR became available on Windows and
other systems not using the GNU C library
|
Example #2 Convenient way how glob() can replace opendir() and friends.
<?php
foreach (glob("*.txt") as $filename) {
echo "$filename size " . filesize($filename) . "\n";
}
?>
以上例程的输出类似于:
funclist.txt size 44686 funcsummary.txt size 267625 quickref.txt size 137820
Note: 此函数不能作用于远程文件,被检查的文件必须是可通过服务器的文件系统访问的。
Note: This function isn't available on some systems (e.g. old Sun OS).
Note: The
GLOB_BRACE
flag is not available on some non GNU systems, like Solaris.