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

时间:2013-05-30 11:03:38

标签: php directory

我正在制作一个脚本,它将显示所有文件并在给定目录中创建链接,但我希望最近上传的文件位于列表的顶部。我搜索了这个网站寻找答案或类似问题,但没有提出任何问题。

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

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

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

2 个答案:

答案 0 :(得分: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;
}

答案 1 :(得分:0)

我使用scandir。以下描述。