2012-03-30 10 views
0

私はディレクトリをループしてglob()を使ってすべてのファイルを取得しています。結果の配列の要素を作成日時順に並べ替える方法はありますか?現在、私はfilemtime()を使用していますが、編集されていないものと想定しています。PHP(または類似のもの)を介したファイル作成時間

乾杯!

+2

これはOSによって異なりますが、UNIXベースのシステムでは、作成時間は変更できません。 – matei

答えて

2

次の操作を試みることができる:

$array = glob("*.txt"); 
usort($array, function($a, $b) { 
    $aTime = filectime($a); 
    $bTime = filectime($b); 
    if ($aTime < $bTime) { 
     return -1; 
    } elseif ($aTime > $bTime) { 
     return 1; 
    } else { 
     return 0; 
    } 
}); 

配列のユーザー定義のソートを可能にするために無名関数を渡します。今回の関数は、globで返されたファイルの作成時間(windows)/ inode変更時間(linux)に応じてチェックとソートを行います。

これが役に立ちます。

ise

+0

乾杯!それは完璧に機能し、ちょうど$ aと$ bを逆転させなければなりませんでした。再度、感謝します! – chintanparikh

1

http://www.php.net/manual/en/function.filectime.php

あなたが必要なものに少し近いかもしれませ。編集時にはまだ更新されますが、メタデータのみの内容は更新されません。

+0

興味深いことに、filemtimeとfilectimeの違いを精緻化していますか?私は本当に理解していない。 – chintanparikh

0

多くのファイルシステムでは、ファイルの作成日に関する情報は保持されません。これらの上で、あなたはフィリメを使ってみることができます。

関連する問題