(PHP 5, PHP 7)
scandir — 指定されたパスのファイルとディレクトリのリストを取得する
$directory
[, int $sorting_order
= SCANDIR_SORT_ASCENDING
[, resource $context
]] )
directory
内のファイルおよびディレクトリを
配列で返します。
directory
調べるディレクトリ。
sorting_order
デフォルトでは、ソート順はアルファベット昇順です。
オプションの sorting_order
に SCANDIR_SORT_DESCENDING
を設定した場合、
ソート順はアルファベット降順になります。
SCANDIR_SORT_NONE
を設定すると、
結果をソートせずに返します。
context
context
パラメータの説明については、
マニュアルのストリーム
を参照ください。
成功した場合にファイル名の配列、失敗した場合に FALSE
を返します。
directory
がディレクトリではない場合は、
FALSE
を返し、E_WARNING
レベルのエラーを
発行します。
バージョン | 説明 |
---|---|
5.4.0 |
sorting_order 定数
が追加されました。これまでのバージョンでは、非ゼロの値を指定するとすべて降順となっていました。
つまり、PHP のバージョンにかかわらず、次のようになります。
0 を指定すれば昇順、1 を指定すれば降順。
SCANDIR_SORT_NONE に対応する設定は、PHP 5.4.0 より前のバージョンにはありません。
|
例1 scandir() の簡単な例
<?php
$dir = '/tmp';
$files1 = scandir($dir);
$files2 = scandir($dir, 1);
print_r($files1);
print_r($files2);
?>
上の例の出力は、 たとえば以下のようになります。
Array ( [0] => . [1] => .. [2] => bar.php [3] => foo.txt [4] => somedir ) Array ( [0] => somedir [1] => foo.txt [2] => bar.php [3] => .. [4] => . )
例2 PHP 4 での scandir() の代用方法
<?php
$dir = "/tmp";
$dh = opendir($dir);
while (false !== ($filename = readdir($dh))) {
$files[] = $filename;
}
sort($files);
print_r($files);
rsort($files);
print_r($files);
?>
上の例の出力は、 たとえば以下のようになります。
Array ( [0] => . [1] => .. [2] => bar.php [3] => foo.txt [4] => somedir ) Array ( [0] => somedir [1] => foo.txt [2] => bar.php [3] => .. [4] => . )
fopen wrappers が有効の場合、この関数のファイル名として URL を使用することができます。ファイル名の指定方法に関する詳細は fopen() を参照ください。 サポートするプロトコル/ラッパー には、さまざまなラッパーの機能やその使用法、 提供される定義済み変数などの情報がまとめられています。