PHP中的递归列表文件

时间:2015-06-30 15:48:58

标签: php recursion directory

这是我的问题:我有一个包含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);

0 个答案:

没有答案