0

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

}
?>
4

1 回答 1

0

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

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

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

于 2012-07-30T19:11:59.887 回答