# readdir

(PHP 4, PHP 5, PHP 7)

readdir — 从目录句柄中读取条目

### 说明

readdir ([ resource `$dir_handle` ] ) : string

返回目录中下一个文件的文件名。文件名以在文件系统中的排序返回。

### 参数

`dir_handle`

  目录句柄的 resource，之前由 opendir() 打开

### 返回值

成功则返回文件名 或者在失败时返回 `FALSE`

Warning

此函数可能返回布尔值 `FALSE`，但也可能返回等同于 `FALSE` 的非布尔值。请阅读 布尔类型章节以获取更多信息。应使用 === 运算符来测试此函数的返回值。

### 范例

Example #1 列出目录中的所有文件

请留意下面例子中检查 readdir() 返回值的风格。这里明确地测试返回值是否全等于（值和类型都相同——更多信息参见比较运算符）`FALSE`，否则任何目录项的名称求值为 `FALSE` 的都会导致循环停止（例如一个目录名为“0”）。

    <?php
    // 注意在 4.0.0-RC2 之前不存在 !== 运算符

    if ($handle = opendir('/path/to/files')) {
        echo "Directory handle: $handle\n";
        echo "Files:\n";

        /* 这是正确地遍历目录方法 */
        while (false !== ($file = readdir($handle))) {
            echo "$file\n";
        }

        /* 这是错误地遍历目录的方法 */
        while ($file = readdir($handle)) {
            echo "$file\n";
        }

        closedir($handle);
    }
    ?>

Example #2 列出当前目录的所有文件并去掉 . 和 ..

    <?php
    if ($handle = opendir('.')) {
        while (false !== ($file = readdir($handle))) {
            if ($file != "." && $file != "..") {
                echo "$file\n";
            }
        }
        closedir($handle);
    }
    ?>

### 参见

- is_dir() - 判断给定文件名是否是一个目录
- glob() - 寻找与模式匹配的文件路径
- opendir() - 打开目录句柄
- scandir() - 列出指定路径中的文件和目录