使用PHP在文件夹中查找最旧的文件

BLA*_*AKE 16 php sorting file

我需要一个PHP脚本来查找文件夹中最旧文件的日期.现在,我正在迭代每个文件,并将它的Date Modified与之前的文件进行比较,并保存最早的日期.

是否有更少的磁盘/内存密集的方式来做到这一点?文件夹中有大约300k文件.如果我在Windows资源管理器中打开该文件夹,它将按修改日期自动排序,我会更快地看到最旧的文件.有什么方法可以利用PHP脚本中的Explorer默认排序?

Ant*_*ney 25

// Grab all files from the desired folder
$files = glob( './test/*.*' );

// Sort files by modified time, latest to earliest
// Use SORT_ASC in place of SORT_DESC for earliest to latest
array_multisort(
array_map( 'filemtime', $files ),
SORT_NUMERIC,
SORT_ASC,
$files
);

echo $files[0] // the latest modified file should be the first.
Run Code Online (Sandbox Code Playgroud)

取自网站

祝好运

编辑:要排除目录中的文件以减少不必要的搜索:

$files = glob( './test/*.*' );
$exclude_files = array('.', '..');
if (!in_array($files, $exclude_files)) {
// Sort files by modified time, latest to earliest
// Use SORT_ASC in place of SORT_DESC for earliest to latest
array_multisort(
array_map( 'filemtime', $files ),
SORT_NUMERIC,
SORT_ASC,
$files
);
}

echo $files[0];
Run Code Online (Sandbox Code Playgroud)

如果您知道要查找的内容以及可以排除的内容,这将非常有用.

  • 我喜欢你的答案,但是对于那么多文件,PHP在完成之前会耗尽内存并且脚本会死掉. (2认同)