当前位置: 首页 > 面试题库 >

在PHP中按日期对文件排序

穆德海
2023-03-14
问题内容

我目前有一个index.php文件,该文件允许我输出同一目录内的文件列表,输出显示名称,然后使用filemtime()函数显示文件修改的日期。我现在的问题是,我将如何对输出进行排序以显示最新的修改后的文件?,我已经思考了一段时间了。如果仅通过mysql交互进行操作,则完全没有问题。请给我一个示例,说明如何从最新修改的文​​件开始排序和输出文件列表。这就是我现在所拥有的

if ($handle = opendir('.')) {
while (false !== ($file = readdir($handle))) {
       if ($file != "." && $file != "..") {
        $lastModified = date('F d Y, H:i:s',filemtime($file));
          if(strlen($file)-strpos($file,".swf")== 4){
            echo "<tr><td><input type=\"checkbox\" name=\"box[]\"></td><td><a href=\"$file\" target=\"_blank\">$file</a></td><td>$lastModified</td></tr>";
           }
       }
   }
   closedir($handle);
}

问题答案:

您需要将文件放入数组中才能排序和查找最后修改的文件。

$files = array();
if ($handle = opendir('.')) {
    while (false !== ($file = readdir($handle))) {
        if ($file != "." && $file != "..") {
           $files[filemtime($file)] = $file;
        }
    }
    closedir($handle);

    // sort
    ksort($files);
    // find the last modification
    $reallyLastModified = end($files);

    foreach($files as $file) {
        $lastModified = date('F d Y, H:i:s',filemtime($file));
        if(strlen($file)-strpos($file,".swf")== 4){
           if ($file == $reallyLastModified) {
             // do stuff for the real last modified file
           }
           echo "<tr><td><input type=\"checkbox\" name=\"box[]\"></td><td><a href=\"$file\" target=\"_blank\">$file</a></td><td>$lastModified</td></tr>";
        }
    }
}

未经测试,但这就是方法。



 类似资料:
  • 问题内容: 我在PHP数组中有一些来自XML或JSON的数据,如下所示: 我想做的是按日期订购这两项。 当排序值位于每个项目内时,是否可以按日期排序? 我需要将日期格式转换为时间戳吗? 我不想做什么 我可以使用date并将其设置为ID,但是感觉不对,因为两个项目可以具有相同的日期,因此它不是唯一的。 问题答案: 您无需在排序之前将日期转换为时间戳,但这是一个好主意,因为如果不使用它,将需要更多的时

  • 问题内容: 现在我用下面的查询按每篇文章的auto_increment id进行即时排序 我想知道如何按我创建的日期字段排序,该字段通过strtotime()存储当前日期,它应该查询从最新到最旧的日期。 当前代码 问题答案: 只需更改ORDER BY中的列即可:

  • 问题内容: 让我们 我想按日期和时间键对输出进行排序。 非常感谢你。 问题答案: 对于GNU排序: 按月份按第二列排序(这样,“三月”排在“四月”之前) 在数字模式下按第三列排序(因此,“ 9”位于“ 10”之前) 按第四列排序。 请参见手册中的更多详细信息。

  • 如何先按开始日期在fullCalendar中排序事件? 示例: 首先开始的事件将显示在顶部,随后开始的事件将显示在后面 如果两个事件的开始日期相同,则按结束日期对它们进行排序,即先显示一个较早结束的事件,然后显示一个较晚结束的事件。 日历显示事件顺序

  • 问题内容: 我正在尝试使用TreeMap按日期键在Java中对地图进行排序。这是我的代码 将含有像(例如21-3-2013)以字符串格式和外观日期。问题在于,它仅在TreeMap(mp)中存储12个键值对(每月一个),而不是预期的103(i)。有任何想法吗 ? 问题答案: 请参阅http://docs.oracle.com/javase/6/docs/api/java/text/SimpleDat

  • 问题内容: 我有一个对象数组,如下所示: 我想按排序。 我尝试这样做如下: 但是这些尝试都没有成功。我得到的结果是: 这是小提琴。 问题答案: 使用构造函数并执行类似的操作。 或通过将日期字符串反转后使用字符串比较。