【问题标题】:How to echo all the files in a directory based the date it was last modified php如何根据上次修改的日期回显目录中的所有文件php
【发布时间】:2015-01-23 18:56:47
【问题描述】:

我正在使用下面的代码将目录中的所有文件回显到页面上。回显出来的文件的顺序是随机的,即

文件 3

文件 1

文件 2

代替

文件 1

文件 2

文件 3


如何使回显的文件基于创建或上传的时间。最新的文件将显示在列表顶部,最旧的文件将显示在底部

if ($handle = opendir('.')) {

    while (false !== ($entry = readdir($handle))) {

        if ($entry != "." && $entry != ".." && !in_array($entry, $blacklist)) {
            echo "<p>$entry\n</p>";
        } 



    }

    closedir($handle);
}

【问题讨论】:

    标签: php file directory echo


    【解决方案1】:

    这应该适合你:

    (这里我从带有glob()的目录中获取所有文件,然后使用用户定义的函数usort()对其进行排序,并将最后修改的时间与filemtime()进行比较)

    <?php
    
        function cmp($a, $b) {
            if (filemtime($a) == filemtime($b))
                return 0;
    
            return (filemtime($a) < filemtime($b)) ? -1 : 1;
        }
    
    
        $files = glob("*.*");
        usort($files, "cmp");
    
        foreach($files as $file)
            echo $file . "<br />";
    
    ?>
    

    【讨论】:

      【解决方案2】:

      看看 PHP4+ 的 filemtime。您将要在这里做两件事:

      1. 以数组形式获取文件的文件时间
      2. 根据文件时间比较对它们进行排序

      【讨论】:

        【解决方案3】:

        下次尝试在stackoverflow上搜索与您类似的问题:)

            $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 "$file$lastModified"; } }
        

        未测试

        SOURCE

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2013-04-23
          • 2011-04-06
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多