scandir
(PHP 5)
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() を参照ください。 サポートするプロトコル/ラッパー には、さまざまなラッパーの機能やその使用法、 提供される定義済み変数などの情報がまとめられています。