readdir
(PHP 4, PHP 5, PHP 7)
readdir — ディレクトリハンドルからエントリを読み込む
説明
readdir
([ resource $dir_handle
] ) : string|false
ディレクトリから次のエントリの名前を返します。 エントリ名はファイルシステム上に格納されている順番で返されます。
パラメータ
dir_handle
- opendir() が事前にオープンした ディレクトリハンドルリソース。 ディレクトリハンドルを指定しなかった場合は、 opendir() が最後にオープンしたものを使用します。
返り値
成功した場合にエントリ名、失敗した場合に false
を返します。
例
例1 ディレクトリ内の全てのエントリのリストを得る
以下の例で、readdir() の返り値をどのように調べているかに
注目してください。返り値が false
と一致することを、明示的に
(値が等しく、かつ型も等しい - 詳細は
比較演算子 を参照ください)調べています。なぜなら、そうしないと
false
と評価されてしまうディレクトリエントリ
(例: "0" という名前のディレクトリ)があった場合にループが
とまってしまうからです。
<?phpif ($handle = opendir('/path/to/files')) { echo "Directory handle: $handle\n"; echo "Entries:\n"; /* ディレクトリをループする際の正しい方法です */ while (false !== ($entry = readdir($handle))) { echo "$entry\n"; } /* ディレクトリをループする際の「間違った」方法です */ while ($entry = readdir($handle)) { echo "$entry\n"; } closedir($handle);}?>
例2
カレントディレクトリの全てのエントリを一覧する。ただし .
および ..
は取り除く
<?phpif ($handle = opendir('.')) { while (false !== ($entry = readdir($handle))) { if ($entry != "." && $entry != "..") { echo "$entry\n"; } } closedir($handle);}?>