トップページ >  PHP >  ディレクトリ内のファイル一覧を表示
初版2013/05/08: 最終更新日2013/05/08
ディレクトリ内のファイル一覧を表示
目次
ディレクトリ内のファイル一覧を表示
ディレクトリ内のファイル一覧を表示
ディレクトリ内のファイル一覧を表示するには、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
)