以反向字母顺序从目录返回固定数量的项目

时间:2012-07-30 18:47:36

标签: opendir

我的目录中的文件是按日期标记的(例如,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>";

}
?>

1 个答案:

答案 0 :(得分:0)

如果使用scandir,可以添加排序参数作为第二个参数。然后你可以用array_slice拼接数组来获得你想要的元素。

$ array = scandir($ path);    $ files = array_slice($ array,0,10);

获取您想要的文件或跳过前2个元素,因为。和..你可以做array_slice($ array,2,10);