PHP readir结果 - 尝试按创建日期排序,并摆脱“。”和“......”

时间:2012-03-07 14:20:19

标签: php

我有一个双重问题。第一部分:我从一个目录中提取了一个很好的pdf文件列表,并将一个名为download.php的文件附加到“href”链接,因此pdf文件不会尝试作为网页打开(它们会保存/保存为相反)。麻烦的是我需要按创建日期订购pdf文件/链接。我尝试了很多变化,但似乎没有任何作用!下面的脚本。我也想摆脱“。”和“..”目录点!关于如何实现所有这些的任何想法。单独来说,这些问题之前已经解决过了,但不是我附加的download.php场景:)

<?php

$dir="../uploads2"; // Directory where files are stored


if ($dir_list = opendir($dir))
{
while(($filename = readdir($dir_list)) !== false)


{
?>
<p><a href="http://www.duncton.org/download.php?file=login/uploads2/<?php echo $filename; ?>"><?php echo $filename;
?></a></p>
<?php


}
closedir($dir_list);
}

?>

1 个答案:

答案 0 :(得分:1)

虽然您可以将其*过滤掉,但...句柄总是。所以你可以把它们剪掉。特别是如果您使用更简单的scandir()方法:

foreach (array_slice(scandir($dir), 2) as $filename) {

还可以使用glob("dir/*")隐式跳过dotfiles。因为它返回ctime的完整路径排序,所以也变得更容易了:

$files = glob("dir/*");

// make filename->ctime mapping
$files = array_combine($files, array_map("filectime", $files));

// sorts filename list
arsort($files);
$files = array_keys($files);