2014-01-23 25 views
0

我有一个文件夹“内容”,其中将生成其他文件夹, 和在这些文件夹中有HTML页面。 现在我怎么能打印每个文件夹中的最后修改的html文件?PHP得到最后修改文件,多个文件夹和文件

文件夹前。

content { 
      testfolder1 { file1.html,file2.html ecc..} 
      testfolder2 { file3.html,file4.html ecc..} 
     } 

输出将是:

file4.html was last insert or modfied 

谢谢,对不起我的英语不好:)

附:在filemtime()函数恨我:d

这是代码我心目中:

$list = scandir("content"); 
unset($list[0]); 
unset($list[1]); 


foreach($list as $v) 
{ 
    for ($i = 0; $i<=$v; $i++) 
    { 
     $gencat = "content/$v"; 
     $genlist = scandir($gencat); 
     unset($genlist[0]); 
     unset($genlist[1]); 

     foreach($genlist as $k) 
     { 
      $filetime = date("Y/M/D h:i" , filemtime($gencat . "/" . $k)); 
      echo $gencat . "/" . $k . " " . $filetime . "<br/>"; 
     } 
    } 
} 

回答

3

嘛,做如下所示,创建一个函数,通过遍历所有这些函数并检查修改的时间来返回上次修改的函数。这个想法是:当你开始迭代时,假设第一个文件是最后一次修改的。继续迭代,然后在每次迭代中检查您认为是最后一次修改的文件。如果之前修改了新的,那就改变了。最后你会有最后修改的。

这是我心目中的代码:

function lastModifiedInFolder($folderPath) { 

    /* First we set up the iterator */ 
    $iterator = new RecursiveDirectoryIterator($folderPath); 
    $directoryIterator = new RecursiveIteratorIterator($iterator); 

    /* Sets a var to receive the last modified filename */ 
    $lastModifiedFile = "";   

    /* Then we walk through all the files inside all folders in the base folder */ 
    foreach ($directoryIterator as $name => $object) { 
     /* In the first iteration, we set the $lastModified */ 
     if (empty($lastModifiedFile)) { 
      $lastModifiedFile = $name; 
     } 
     else { 
      $dateModifiedCandidate = filemtime($lastModifiedFile); 
      $dateModifiedCurrent = filemtime($name); 

      /* If the file we thought to be the last modified 
       was modified before the current one, then we set it to the current */ 
      if ($dateModifiedCandidate < $dateModifiedCurrent) { 
       $lastModifiedFile = $name; 
      } 
     } 
    } 
    /* If the $lastModifiedFile isn't set, there were no files 
     we throw an exception */ 
    if (empty($lastModifiedFile)) { 
     throw new Exception("No files in the directory"); 
    } 

    return $lastModifiedFile; 
} 
相关问题