我正在制作一个脚本,它将显示所有文件并在给定目录中创建链接,但我希望最近上传的文件位于列表的顶部。我搜索了这个网站寻找答案或类似问题,但没有提出任何问题。
这是我到目前为止的代码:
<?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); ?>
我将不胜感激任何帮助或建议。
答案 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。以下描述。