(PHP 4, PHP 5, PHP 7, PHP 8)
readdir — ディレクトリハンドルからエントリを読み込む
$dir_handle
= null
): string|falseディレクトリから次のエントリの名前を返します。 エントリ名はファイルシステム上に格納されている順番で返されます。
成功した場合にエントリ名、失敗した場合に false
を返します。
バージョン | 説明 |
---|---|
8.0.0 |
dir_handle は、nullable になりました。
|
例1 ディレクトリ内の全てのエントリのリストを得る
以下の例で、readdir() の戻り値をどのように調べているかに
注目してください。戻り値が false
と一致することを、明示的に
(値が等しく、かつ型も等しい - 詳細は
比較演算子 を参照ください)調べています。なぜなら、そうしないと
false
と評価されてしまうディレクトリエントリ
(例: "0" という名前のディレクトリ)があった場合にループが
とまってしまうからです。
<?php
if ($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
カレントディレクトリの全てのエントリを一覧する。ただし .
および ..
は取り除く
<?php
if ($handle = opendir('.')) {
while (false !== ($entry = readdir($handle))) {
if ($entry != "." && $entry != "..") {
echo "$entry\n";
}
}
closedir($handle);
}
?>