opendir

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

opendirディレクトリハンドルをオープンする

説明

opendir(string $directory, ?resource $context = null): resource|false

ディレクトリハンドルをオープンします。このハンドルは、この後 closedir(), readdir(), rewinddir() 関数コールで使用されます。

パラメータ

directory
オープンするディレクトリのパス。
context
context パラメータの詳細については マニュアルのストリーム を参照ください。

戻り値

成功した場合にディレクトリハンドルを返します。 失敗した場合に false を返します

エラー / 例外

失敗したときは E_WARNING が発生します。

directory が有効なディレクトリでない場合、 権限の制限によりディレクトリがオープンできない場合、 またはファイルシステムのエラー時に起こりえます。

変更履歴

バージョン 説明
8.0.0 context は、nullable になりました。

例1 ディレクトリ中の全てのエントリを表示します。 ただし、特別な ... ディレクトリはスキップします。

ファイル名やディレクトリ名は、 PHP が false と見なす文字列 (例: "0" という名前のディレクトリ) の可能性があり、かつ readdir() は全てのディレクトリエントリを読み取ったあとに false を返します。 そのため、PHP が false とみなすディレクトリ名と、 全てのディレクトリエントリを読み取ったことを適切に区別するためには、 比較演算子 === を使う必要があります。

<?php

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

/* Correctly handling directory entries that may be considered falsy */
while (false !== ($entry = readdir($handle))) {
if (
$entry === '.' || $entry === '..') {
continue;
}
echo
"$entry\n";
}

closedir($handle);
}
?>

上の例の出力は、 たとえば以下のようになります。

Entries:
base
en
fr
output.md
test.php

参考

  • readdir() - ディレクトリハンドルからエントリを読み込む
  • rewinddir() - ディレクトリハンドルを元に戻す
  • closedir() - ディレクトリハンドルをクローズする
  • dir() - ディレクトリクラスのインスタンスを返す
  • is_dir() - ファイルがディレクトリかどうかを調べる
  • glob() - パターンにマッチするパス名を探す
  • scandir() - 指定されたパスのファイルとディレクトリのリストを取得する