0

我正在编写一个脚本,该脚本将显示所有文件并在给定目录中创建链接,但我希望最近上传的文件位于列表顶部。我在这个网站上搜索了一个答案或类似的问题,但一无所获。

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

<?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); ?>

我将不胜感激任何帮助或建议。

4

2 回答 2

0

将文件与最后修改时间一起存储在一个数组中,然后在显示之前对数组进行排序。尝试以下,未经测试:

$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;
}
于 2013-05-30T11:15:46.560 回答
0

我使用scandir。说明如下。

于 2013-05-30T11:38:07.080 回答