我的目录中的文件是按日期标记的(例如,2012-07-05.xls,2012-07-04.xls),我只想列出(和链接)该目录中的最后10个文件,从最新的一个开始。我可以按正确的顺序轻松生成列表,但无法弄清楚如何将其限制为10(并且也不会返回目录的“。”和“..”条目。)
这就是我现在所拥有的。对所有建议开放。
<?php
$path = $_SERVER[DOCUMENT_ROOT]."/path/";
$dh = @opendir($path);
$files = array();
while (false !== ($file = readdir($dh))) {
array_push($files, $file);
}
rsort($files);
foreach ($files as $file){
echo "<li><a href=\"$file\">";
echo($file)."</a></li>";
}
?>
答案 0 :(得分:0)
如果使用scandir,可以添加排序参数作为第二个参数。然后你可以用array_slice拼接数组来获得你想要的元素。
$ array = scandir($ path); $ files = array_slice($ array,0,10);
获取您想要的文件或跳过前2个元素,因为。和..你可以做array_slice($ array,2,10);