関数でディレクターを検索しglob
、一致したファイルのリストを取得します。filemtime
次に、ファイルをチェックしてマップを作成します。次に、ファイルの日付に関してマップを並べ替えます。最後に、最新のファイル名と変更時刻を取得します。私のコードはこのようなものです。小さなディレクトリではうまく機能しますが、大きなディレクトリでは遅くなります。より速い/賢い方法があるのだろうか?
$fileList = array();
// $id = is the argument of this function
$files = glob('myfolder'.DS.'someone'.$id.'*.txt');
if (empty($files)) {
return 0;
}
foreach ($files as $file) {
$fileList[filemtime($file)] = $file;
}
if (sizeof($files) > 1) {
ksort($fileList);
}
$latestFilename = end($fileList);
$fileLastModifDate = filemtime( $latestFilename );