2012-07-30 89 views
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>"; 

} 
?> 

回答

0

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

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

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

+0

这工作完美。 谢谢 – steverino 2012-07-30 21:54:22