首先显示目录中所有具有最新链接的文件


Show all file in directory with most recent links first

我正在编写一个脚本,该脚本将显示所有文件并在给定目录中进行链接,但我希望最近上传的是在列表的顶部。我在这个网站上搜索了一个答案或类似的问题,但没有找到任何东西。

这是我到目前为止的代码:

<?php
$dir = opendir('files/'); 
while ($read = readdir($dir)) 
{
if ($read!='.' && $read!='..') 
{ 
echo '<ul style="list-style: none;"><li><a href="files/'.$read.'"target="_blank"><FONT COLOR="#0196e3">'.$read.'</a></li></ul>'; 
}
}
closedir($dir); ?>
我将感谢任何帮助或建议。

将文件存储在最后一次修改时间的数组中,然后在显示该数组之前对该数组进行排序。试试下面这个未经测试的命令:

$dir = opendir('files/');
$fileArray = array();    
while ($read = readdir($dir)) 
{
    if ($read!='.' && $read!='..') 
    { 
        // Get the time this directory was last edited and store it in an array
        $fileArray[] = array('fileName' => $read, 'lastModified' => filemtime($dir));
    }
}
closedir($dir);
// Sort the files
$usort($fileArray, 'compareFiles');
foreach($fileArray as $file)
{
    // files sorted now - display them here
}
// Compares the files - see: http://www.php.net/manual/en/function.usort.php
function compareFiles($a, $b)
{
    if ($a[lastModified] == $b[lastModified]) {
        return 0;
    }
    return ($a[lastModified] < $b[lastModified]) ? -1 : 1;
}

我使用scandir。