【问题标题】:How to sort results of directory search...?如何对目录搜索的结果进行排序...?
【发布时间】:2013-07-10 14:16:45
【问题描述】:

我有一个名为“logs”的子目录,用于存储文件以供下载。我正在尝试创建一个动态下载页面。

有 5 个团队被引用(dragonsoul、firelands、tier11、tier14 和 ulduar)以及 log 文件夹中的文件,并以 ex 格式命名。 dragonsoul07072013.csv(名称的结尾是日期)。

下载页面:

我有一个表单,其中包含每个提交给自身的袭击的选择列表。

<?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 />";
}    
?>

【问题讨论】:

  • 将文件名保存到数组中并排序..

标签: php sorting search directory


【解决方案1】:

将文件放入数组中。

使用 sort() 函数。

遍历数组。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-05-14
    • 2011-10-16
    • 2011-07-13
    • 2012-09-25
    • 2021-10-26
    • 1970-01-01
    • 2012-01-28
    • 2013-04-28
    相关资源
    最近更新 更多