1

最近、別のフォーラムでこの PHP スクリプトを見つけました。これは、指定されたディレクトリ内のすべてのファイルを新しいものから古いものの配列に配置し、array[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;
}

.infps拡張子のみが必要な場合は、ステートメントに追加$fileinfo->getExtension() == 'inf'してください。if

于 2013-10-12T11:57:57.933 に答える