包含点文件,但不包括 . 和 .. 特殊目录,使用 .[!.]*
<?php
$all_files = array_merge(glob('.[!.]*'), glob('*'));
// 或者
$all_files = glob('{.[!.],}*', GLOB_BRACE);
?>
(PHP 4 >= 4.3.0, PHP 5, PHP 7, PHP 8)
glob — 查找与模式匹配的路径名
glob() 函数根据 libc glob() 函数使用的规则搜索与 pattern
匹配的所有路径名,该规则类似于常用 shell 使用的规则。
pattern
模式。不会执行波浪号展开或参数替换。
特殊字符
*
- 匹配零个或多个字符。
?
- 匹配一个字符(任何字符)。
[...]
- 匹配一组字符中的一个字符。如果第一个字符是 !
,则匹配组中不存在的任何字符。
\
- 转义后面的字符,除非使用 GLOB_NOESCAPE
标志。
flags
有效标志
GLOB_BRACE
(int)注意:
GLOB_BRACE
在一些非 GNU 系统上不可用,例如 Solaris 或 Alpine Linux。
GLOB_ERR
(int)GLOB_ONLYDIR
(int)GLOB_MARK
(int)GLOB_NOSORT
(int)GLOB_NOCHECK
(int)GLOB_NOESCAPE
(int)GLOB_AVAILABLE_FLAGS
(int)GLOB_*
标志组合在一起。等效于 0
| GLOB_BRACE
| GLOB_MARK
| GLOB_NOSORT
| GLOB_NOCHECK
| GLOB_NOESCAPE
| GLOB_ERR
| GLOB_ONLYDIR
示例 #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