PHP readir结果-尝试按创建日期排序,同时去掉“”";和“&”;


PHP readir results - trying to sort by date created and also get rid of "." and ".."

我有一个双重问题。第一部分:我从一个目录中提取了一个很好的pdf文件列表,并在"href"链接中附加了一个名为download.php的文件,这样pdf文件就不会试图作为网页打开(而是保存/另存为)。问题是我需要按创建日期订购pdf文件/链接。我尝试了很多变体,但似乎都不起作用!下面的脚本。我还想去掉"."answers".."目录点!关于如何实现这一切的任何想法。就个人而言,这些问题以前已经解决了,但没有通过我附加的下载来解决。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);
}
?>

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

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

也可以使用隐式跳过点文件的glob("dir/*")。当它返回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);