opendir
rewinddir
ディレクトリ 関数
PHP Manual

# readdir

(PHP 4, PHP 5)

readdir — ディレクトリハンドルからエントリを読み込む

### 説明

string readdir ([ resource `$dir_handle` ] )

ディレクトリから次のエントリの名前を返します。 エントリ名はファイルシステム上に格納されている順番で返されます。

### パラメータ

`dir_handle`

  opendir() が事前にオープンした ディレクトリハンドルリソース。 ディレクトリハンドルを指定しなかった場合は、 opendir() が最後にオープンしたものを使用します。

### 返り値

成功した場合にエントリ名、失敗した場合に `FALSE` を返します。

警告

この関数は論理値 `FALSE` を返す可能性がありますが、`FALSE` として評価される値を返す可能性もあります。 詳細については 論理値の セクションを参照してください。この関数の返り値を調べるには ===演算子 を 使用してください。

### 例

例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);
}
?>`

### 参考

- is_dir() - ファイルがディレクトリかどうかを調べる
- glob() - パターンにマッチするパス名を探す
- opendir() - ディレクトリハンドルをオープンする
- scandir() - 指定されたパスのファイルとディレクトリのリストを取得する

opendir
rewinddir
ディレクトリ 関数
PHP Manual