Я ищу директора с функцией glob
и получаю список совпадающих файлов. Затем, проверив filemtime
файлов, я создаю карту. Затем отсортируйте карту относительно дат файла. Наконец, я получаю имя последнего файла и время модификации. Мой код такой. Он хорошо работает для небольших каталогов, но для больших каталогов он медленный. Интересно, есть ли более быстрый/умный способ?Поиск последнего имени файла и времени модификации в PHP
$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);
этот вопрос (http://stackoverflow.com/questions/124958/glob-sort по дате) дает различные возможности (esp ссылку в первом комментарии, который имеет некоторые очень умные идеи). Вам, вероятно, придется оценивать каждый самостоятельно, чтобы определить, какой из них был самым быстрым. –
Вам нужно только знать, какой файл является последним измененным? Если это так, создание списка и сортировка его не требуется. – cgTag
Возможный дубликат: http://stackoverflow.com/questions/5448374/get-last-modified-file-in-a-dir – cgTag