readdir

(PHP 4, PHP 5, PHP 7, PHP 8)

readdir從目錄句柄中讀取條目

說明

readdir(resource $dir_handle = ?): string

返回目錄中下一個文件的文件名。文件名以在文件系統(tǒng)中的排序返回。

參數(shù)

dir_handle

目錄句柄的 resource,之前由 opendir() 打開

返回值

成功則返回文件名 或者在失敗時返回 false

警告

此函數(shù)可能返回布爾值 false,但也可能返回等同于 false 的非布爾值。請閱讀 布爾類型章節(jié)以獲取更多信息。應(yīng)使用 === 運算符來測試此函數(shù)的返回值。

范例

示例 #1 列出目錄中的所有文件

請留意下面例子中檢查 readdir() 返回值的風(fēng)格。這里明確地測試返回值是否全等于(值和類型都相同——更多信息參見比較運算符false,否則任何目錄項的名稱求值為 false 的都會導(dǎo)致循環(huán)停止(例如一個目錄名為“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);
}
?>

示例 #2 列出當(dāng)前目錄的所有文件并去掉 ...

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

參見

  • is_dir() - 判斷給定文件名是否是一個目錄
  • glob() - 尋找與模式匹配的文件路徑
  • opendir() - 打開目錄句柄
  • scandir() - 列出指定路徑中的文件和目錄