【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 を返します。

【PHP8.x】readdir関数の使い方 | いっしー@Webエンジニア