如何以“上次修改日期”顺序列出目录中的文件? (Linux上的PHP5)
答案 0 :(得分:14)
function newest($a, $b)
{
return filemtime($a) - filemtime($b);
}
$dir = glob('files/*'); // put all files in an array
uasort($dir, "newest"); // sort the array by calling newest()
foreach($dir as $file)
{
echo basename($file).'<br />';
}
信用goes here。
答案 1 :(得分:3)
使用readdir
将数据与其filemtime
一起保存,从而读取目录中的文件。根据此值对数组进行排序,您将得到结果。
答案 2 :(得分:1)
解决方案是:
DirectoryIterator
(例如SplFileInfo::getMTime
asort
或arsort
对数组进行排序 - 具体取决于您希望文件的顺序。
例如,这部分代码:
$files = array();
$dir = new DirectoryIterator(dirname(__FILE__));
foreach ($dir as $fileinfo) {
if (!$fileinfo->isDot()) {
$files[$fileinfo->getFilename()] = $fileinfo->getMtime();
}
}
arsort($files);
var_dump($files);
给我:
array
'temp.php' => int 1268342782
'temp-2.php' => int 1268173222
'test-phpdoc' => int 1268113042
'notes.txt' => int 1267772039
'articles' => int 1267379193
'test.sh' => int 1266951264
'zend-server' => int 1266170857
'test-phing-1' => int 1264333265
'gmaps' => int 1264333265
'so.php' => int 1264333262
'prepend.php' => int 1264333262
'test-curl.php' => int 1264333260
'.htaccess' => int 1264333259
即。保存我的脚本的目录中的文件列表,最近修改在列表的开头。
答案 3 :(得分:0)
在谷歌上尝试相同的查询,你会更快地得到答案。干杯。 http://php.net/manual/en/function.filemtime.php
答案 4 :(得分:0)