glob

(PHP 4 >= 4.3.0, PHP 5, PHP 7, PHP 8)

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

说明

glob(string$pattern, int$flags = 0): array|false

glob() 函数依照 libc glob() 函数使用的规则寻找所有与 pattern 匹配的文件路径,类似于一般 shells 所用的规则一样。

参数

pattern

匹配模式(pattern)。 不进行缩写扩展或参数替代。

特殊字符:

  • * - 匹配零个或多个字符。
  • ? - 只匹配单个字符(任意字符)。
  • [...] - 匹配一组字符中的一个字符。 如果第一个字符是 !,则为否定模式, 即匹配不在这组字符中的任意字符。
  • \ - 只要没有使用 GLOB_NOESCAPE 标记,该字符会转义后面的字符。
flags

有效标记有:

GLOB_BRACE (int)
扩展 {a,b,c} 为匹配“a”、“b”或“c”

注意: GLOB_BRACE 在非 GUN 系统无效,像 Solaris 或 Alpine Linux。

GLOB_ERR (int)
默认忽略错误,在读取错误(如目录无法读取)时停止。
GLOB_ONLYDIR (int)
只返回与模式匹配的目录条目
GLOB_MARK (int)
向每个返回的目录添加斜线(在 Windows 上为反斜线)
GLOB_NOSORT (int)
按照目录中出现的顺序返回文件(不排序)。当不使用此 flag 时,路径名按字母顺序排序
GLOB_NOCHECK (int)
如果没有找到匹配该模式的文件,则返回搜索模式
GLOB_NOESCAPE (int)
反斜线不引用元字符
GLOB_AVAILABLE_FLAGS (int)
所有 GLOB_* flag 的组合。等同于 0 | GLOB_BRACE | GLOB_MARK | GLOB_NOSORT | GLOB_NOCHECK | GLOB_NOESCAPE | GLOB_ERR | GLOB_ONLYDIR

返回值

返回包含有匹配文件和目录的数组,没有匹配文件时返回空数组,出错返回 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)。

参见

To Top