2011-08-31 85 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 - 不知道我是如何错过/不记得。在我的防守中,这还为时尚早! –