# glob

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

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

### 说明

glob ( string `$pattern` [, int `$flags` = 0 ] ) : array

glob() 函数依照 libc glob() 函数使用的规则寻找所有与 `pattern` 匹配的文件路径，类似于一般 shells 所用的规则一样。不进行缩写扩展或参数替代。

### 参数

`pattern`

  The pattern. No tilde expansion or parameter substitution is done.

`flags`

  有效标记有：

  - `GLOB_MARK` - 在每个返回的项目中加一个斜线
  - `GLOB_NOSORT` - 按照文件在目录中出现的原始顺序返回（不排序）
  - `GLOB_NOCHECK` - 如果没有文件匹配则返回用于搜索的模式
  - `GLOB_NOESCAPE` - 反斜线不转义元字符
  - `GLOB_BRACE` - 扩充 {a,b,c} 来匹配 'a'，'b' 或 'c'
  - `GLOB_ONLYDIR` - 仅返回与模式匹配的目录项
  - `GLOB_ERR` - 停止并读取错误信息（比如说不可读的目录），默认的情况下忽略所有错误

### 返回值

返回一个包含有匹配文件／目录的数组。如果出错返回 `FALSE`。

> 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` 在 Windows 或者其它不使用 GNU C 库的系统上开始可用。

### 范例

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: 此函数不能作用于远程文件，被检查的文件必须是可通过服务器的文件系统访问的。

> Note: 此函数在一些系统上还不能工作（例如一些旧的 Sun OS）。

> Note: `GLOB_BRACE` 在一些非 GNU 系统上无效，比如 Solaris。

### 参见

- opendir() - 打开目录句柄
- readdir() - 从目录句柄中读取条目
- closedir() - 关闭目录句柄
- fnmatch() - 用模式匹配文件名