1

我最近在另一个论坛上发现了这个 PHP 脚本 - 它应该将所有文件放在指定目录中的一个数组中,从最新到最旧,然后通过执行数组 [0] 返回最新文件。

有什么方法可以应用此脚本来获取过去 24 小时内的所有文件?

在此先感谢您的帮助,这里是代码:

<?php
$path = "docs/";
// show the most recent file
echo "Most recent file is: ".getNewestFN($path);

// Returns the name of the newest file 
// (My_name YYYY-MM-DD HHMMSS.inf)
function getNewestFN ($path) {
// store all .inf names in array
$p = opendir($path);
while (false !== ($file = readdir($p))) {
if (strstr($file,".inf"))
$list[]=date("YmdHis ", filemtime($path.$file)).$path.$file; 
}
// sort array descending
rsort($list);
// return newest file name
return $list[0];
}
?>
4

1 回答 1

3

利用:

print_r( get_24h_files('docs/') );

功能:

function get_24h_files($dir) {
    $iterator = new DirectoryIterator($dir);
    $before_24h = strtotime('-24 hour');
    $files = array();
    foreach ($iterator as $fileinfo) {
        if ($fileinfo->isFile() && $fileinfo->getMTime() >= $before_24h) {
            $files[] = $fileinfo->getFilename();
        }
    }
    return $files;
}

ps 如果您只需要.inf扩展,请添加$fileinfo->getExtension() == 'inf'if语句中。

于 2013-10-12T11:57:57.933 回答