【PHP8.x】scandir関数の使い方

作成日: 更新日:

scandir関数は、指定されたディレクトリ内のファイルとディレクトリの一覧を取得し、配列として返す関数です。この関数は、ファイルシステムを操作する上で非常に重要な役割を果たします。具体的には、ディレクトリパスを引数として受け取り、そのディレクトリに含まれるすべてのファイルとサブディレクトリの名前を文字列の配列として返します。

scandir関数には、ソート順を指定するためのオプションの引数も用意されています。デフォルトでは、結果はアルファベット順にソートされますが、SCANDIR_SORT_DESCENDING フラグを使用することで降順にソートしたり、SCANDIR_SORT_NONE フラグを使用することでソートを行わないようにすることも可能です。ソートを行わない場合、ファイルシステムが返す順序で結果が返されます。

また、scandir関数は、カレントディレクトリを示す「.」と親ディレクトリを示す「..」をデフォルトで結果に含みます。これらを含めたくない場合は、返された配列から手動で削除する必要があります。

エラーが発生した場合、scandir関数はfalseを返します。例えば、指定されたディレクトリが存在しない場合や、アクセス権がない場合などが考えられます。そのため、戻り値をチェックして適切にエラー処理を行うことが重要です。

scandir関数は、ファイルマネージャーのようなアプリケーションや、ディレクトリ内のファイルを処理するスクリプトなど、様々な場面で利用されます。ファイルシステムを操作する上で基本となる関数の一つと言えるでしょう。

基本的な使い方

構文(syntax)

scandir(string $directory, int $sorting_order = SCANDIR_SORT_ASCENDING, ?resource $context = null): array|false

引数(parameters)

string $directory, int $sorting_order = SCANDIR_SORT_ASCENDING, $context = null

  • string $directory: ファイルやディレクトリをスキャンする対象のディレクトリパス
  • int $sorting_order = SCANDIR_SORT_ASCENDING: ファイルやディレクトリの並び順を指定する定数(デフォルトは昇順)
  • $context = null: ストリームコンテキストを指定する(通常はnull)

戻り値(return)

array|false

指定されたディレクトリ内のファイルおよびディレクトリ名を配列として返します。ディレクトリの読み取りに失敗した場合は false を返します。

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