2011-08-31 67 views
2

我使用這個腳本來查看子文件夾的所有子文件夾和文件PHP遞歸文件夾掃描排序方式修改日期

function readfolder($dir) 
    { 
     global $tfile,$tdir;$i=0;$j=0;$myfiles; 
     $myfiles[][] = array(); 
     if (is_dir($dir)) { 
      if ($dh = opendir($dir)) { 
       while (($file=readdir($dh)) !== false) { 
        if (!is_dir($dir."\\".$file)) 
        { 
         $tfile[$i]=$file; 
         $i++; 
         echo $dir."\\".$file." <b>File</b><br>"; 
        } 
        else { 
         if (($file != ".") && ($file != "..")) { 
         $tdir[$j]=$file; 
         echo $dir."\\".$file." <b>Directory</b><br>"; 
         readfolder($dir."\\".$file); 
         $j++; 
         } 
        } 
       } 
       closedir($dh); 
      } 
     } 
    } 

    readfolder("."); 

有人能告訴我怎樣可以使用filemtime函數(或其他),這樣我可以按修改日期排序子文件夾和文件?

回答

7

看看SPL DirectoryIterator。它比你現在做的更乾淨,並且使它遞歸。它也有一個合適的mtime方法。

+1

甚至有一個遞歸的目錄迭代器在spl中,請參閱http://docs.php.net/class.recursivedireiteiterator – VolkerK

+0

+1爲了傳播關於SPL的好詞。 –

+0

謝謝@VolkerK - 不知道我是如何錯過/不記得。在我的防守中,這還爲時尚早! –