【PHP8.x】readdir関数の使い方
作成日: 更新日:
readdir関数は、ディレクトリハンドルからエントリを読み込む関数です。この関数は、opendir関数で開かれたディレクトリハンドルを引数に取り、そのディレクトリ内の次のファイルまたはディレクトリの名前を返します。readdir関数を使用することで、ディレクトリの内容を順番に取得し、ファイル名やディレクトリ名を処理することができます。
readdir関数は、ディレクトリの終端に達した場合、またはエラーが発生した場合は、false
を返します。そのため、通常はwhileループの中で使用され、返り値がfalse
になるまでディレクトリ内のエントリを読み込みます。
readdir関数が返すファイル名には、カレントディレクトリを示す「.」と、親ディレクトリを示す「..」も含まれます。これらの特殊なエントリを処理するかどうかは、アプリケーションの要件に応じて決定する必要があります。
例として、次のコードはディレクトリの内容をリスト表示します。
<?php
$dir = "/path/to/your/directory";
if (is_dir($dir)) {
if ($dh = opendir($dir)) {
while (($file = readdir($dh)) !== false) {
echo "filename: " . $file . "<br>";
}
closedir($dh);
}
}
?>
この例では、まずopendir
関数でディレクトリを開き、readdir
関数でファイル名を順番に取得しています。取得したファイル名をecho
で表示し、最後にclosedir
関数でディレクトリハンドルを閉じます。readdir
関数は、システムエンジニアがディレクトリ内のファイルを操作する際に、基本的な機能を提供する重要な関数の一つです。
基本的な使い方
構文(syntax)
<?php
$dir_handle = opendir('/path/to/your/directory');
if ($dir_handle) {
while (false !== ($file_name = readdir($dir_handle))) {
// ここで $file_name を使った処理を行う
echo $file_name . PHP_EOL;
}
closedir($dir_handle);
}
?>
引数(parameters)
$dir_handle
- resource $dir_handle: 読み取るディレクトリへのリソースハンドル
戻り値(return)
string|false
ディレクトリから次のエントリの名前を文字列として返します。エントリがない場合は false を返します。