我有一个名为“logs”的子目录,我存储文件供下载。我正在尝试创建一个动态下载页面。
引用了5个raid(dragonsoul,firelands,tier11,tier14和ulduar)以及日志文件夹中的文件,并以ex格式命名。 dragonsoul07072013.csv(名称的末尾是日期)。
下载页面:
我有一个表单,其中列出了每个提交给自己的raid的选择列表。
<?php
$raidref=$_POST['raid'];
function getfilename($filedate)
{
return $filedate[1];
}
$path = realpath('logs');
foreach (new RecursiveIteratorIterator(new RecursiveDirectoryIterator($path)) as $file)
{
if (isset($raidref) and $raidref!="")
{
$filedate=explode($raidref,$file);
$filedatestr=getfilename($filedate);
$filename=$raidref.$filedatestr;
if ($filedatestr=="")
{unset($filename);}
if (isset($filename))
{ echo"$filename<br /><br /><input type=\"button\" value=\"Download\" onClick=\"download('../logs/".$filename."')\"><br /><br />";}
}
}
这个代码按原样运行,但我希望能够对找到的文件进行排序,以便最新文件位于最佳状态。
现在代码的工作方式是从下拉菜单中选择一个raid,然后提交,它将显示文件的名称和下载按钮,它将针对包含raid名称的每个文件重复这些内容。文件。
如果文件名中包含日期,如果最新的链接位于顶部,则人们可以更轻松地获得正确的下载。
我应该如何打印按降序排序的结果?
目前的显示方式:
dragonsoul07072013.csv
下载
dragonsoul07142013.csv
下载
dragonsoul07212013.csv
下载
我希望如何显示:
dragonsoul07212013.csv
下载
dragonsoul07142013.csv
下载
dragonsoul07072013.csv
下载
另外,请注意您的答案。我正在通过试验和错误以及研究来学习PHP,因为我需要做一些事情,所以你的解释会有很多帮助,所以我可以在将来自己解决这个问题(我实际上讨厌寻求帮助但我不这样做知道如何处理这个问题。
看到我是网站的新手,我再也无法回答我自己的问题8小时,但我只是想让你们知道你的答案有所帮助。这是我修改后的代码,似乎正在做这个伎俩!
<?php
$raidref=$_POST['raid'];
function getfilename($filedate) {return $filedate[1];}
$files=array();
$path = realpath('logs');
foreach (new RecursiveIteratorIterator(new RecursiveDirectoryIterator($path)) as $file)
{
if (isset($raidref) and $raidref!="")
{
$filedate=explode($raidref,$file);
$filedatestr=getfilename($filedate);
$filename=$raidref.$filedatestr;
if ($filedatestr=="") {unset($filename);}
if (isset($filename)) {$files[]=$filename;}
}
}
arsort($files);
foreach ($files as $files)
{
echo"$files<br /><br /><input type=\"button\" value=\"Download\" onClick=\"download('../logs/".$files."')\"><br /><br />";
}
?>
答案 0 :(得分:0)
将文件放入数组中。
使用sort()函数。
循环数组。