这是我的问题:我有一个包含50k +文件和大量子目录的目录。
我想列出今天或本周修改过的所有文件,按上次修改日期排序。
所以我制作了一个小脚本,但我总是有30秒的最大执行时间(我认为文件太多了)。 我希望有不到10秒的时间,因为它是我将在后端界面中向用户显示的脚本。
您如何看待这个?
非常感谢您前进并度过美好的一天! :)
$out = array();
$today = time() - 3600 * 24;
$it = new RecursiveIteratorIterator(new RecursiveDirectoryIterator('/filepath/'));
$files = iterator_to_array($it, true);
if ($files) {
foreach ($files as $file) {
if ($file != '.' && $file != '..' && is_file($file)) {
$date = filemtime($file);
if ($date >= $today) {
$out[] = array(
'path' => $file,
'date' => $date
);
}
}
}
$sort = array();
foreach ($out as $k => $file)
$sort['date'][$k] = $out['date'];
array_multisort($sort['date'], SORT_DESC, $out);
var_dump($out);