関数の概要
scandir 関数は、指定したディレクトリのファイルやフォルダの一覧を取得するためのPHP関数です。ディレクトリ内の内容を配列として返すため、ファイル操作や一覧表示機能を実装する際によく利用されます。
パラメータの説明
directory(必須):一覧を取得したいディレクトリのパスを文字列で指定します。sorting_order(任意):一覧のソート順を指定します。SCANDIR_SORT_ASCENDING(デフォルト)かSCANDIR_SORT_DESCENDINGが指定可能です。context(任意):ストリームコンテキスト。通常は省略します。
戻り値
成功すると、ディレクトリ内のファイル名やフォルダ名の文字列を要素とした配列を返します。エラー時は FALSE を返します。
使用例
基本的な使い方
<?php
$files = scandir('/path/to/directory');
print_r($files);
?>
指定したパスのディレクトリ内にあるすべてのファイルとフォルダ名が配列で取得できます。
ソート順を逆にする例
<?php
$filesDesc = scandir('/path/to/directory', SCANDIR_SORT_DESCENDING);
print_r($filesDesc);
?>
ファイルリストを降順(逆順)に取得したい場合に使います。
「.」や「..」を除いて一覧を取得する例
<?php
$files = scandir('/path/to/directory');
$filtered = array_filter($files, function($file) {
return $file !== '.' && $file !== '..';
});
print_r($filtered);
?>
PHPのディレクトリには「.」(カレントディレクトリ)、「..」(親ディレクトリ)が含まれています。不要な場合はこのようにフィルターで除外します。
関連する関数
opendirreaddirclosedirglob
まとめ
scandir は、PHPでディレクトリ内のファイルやフォルダ一覧を簡単に取得できる便利な関数です。デフォルトで昇順ソートされ、使いやすいためファイル操作の基本として覚えておくと実務でも役立ちます。ソート順の変更や不要な「.」「..」の除外も合わせて活用しましょう。
