如何排序目录搜索结果......?

时间:2013-07-12 05:41:45

标签: php sorting search directory

我有一个名为“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 />";
}    
?>

1 个答案:

答案 0 :(得分:0)

将文件放入数组中。

使用sort()函数。

循环数组。