ディレクトリ内のファイル一覧を表示するには、
dirを使用します。
戻り値はディレクトリクラスのインスタンスです。最後に、close()メソッドで閉じます。
dirは
.と
..も取得するので、それははじくように処理を入れています。
<?php
$array_file = array();
$dir_name = dir('./sample_file/');
while($file_name = $dir_name->read()){
if ($file_name != "." && $file_name != "..") {
//ファイル名配列に順に入れていく
array_push($array_file, $file_name);
}
}
//ファイル名配列をソート
rsort($array_file);
print_r($array_file);
$dir_name->close();
?>
実行結果は以下のとおりです。
Array
(
[0] => message_20130508120000_01.dat
[1] => message_20130507120000_01.dat
[2] => message.upd
)
ここで、拡張子が
datのファイルだけを配列に格納したい場合、
preg_matchを使用します。
使い方は以下のとおりです。
第一引数・・・/正規表現/
第二引数・・・ファイル名
マッチする場合、戻り値はTrueになります。上記の例を修正するなら以下のようにします。
<?php
$array_file = array();
$dir_name = dir('./sample_file/');
while($file_name = $dir_name->read()){
if ($file_name != "." && $file_name != "..") {
if(preg_match("/.*\.dat$/",$file_name)){
//ファイル名配列に順に入れていく
array_push($array_file, $file_name);
}
}
}
//ファイル名配列をソート
rsort($array_file);
print_r($array_file);
$dir_name->close();
?>
実行すると結果は以下のようになります。
Array
(
[0] => message_20130508120000_01.dat
[1] => message_20130507120000_01.dat
)