2011-12-17 83 views
0

我正在試圖製作一個截斷系統。循環遍歷目錄並在PHP中查找目錄名稱

我想永久刪除超過14天的整個目錄。這些目錄以這種格式的日期命名:dd-mm-yyyy

$path = "sites/sitename/.trash/"; 
$lastDate = date('Y-m-d', strtotime("+14 days")); 

是我目前擁有的。在14天內獲得日期。我現在想循環瀏覽目錄,並檢查它們的名稱,如果它們匹配$ lastDate或超過該日期。

因此,這將是這樣的:

if($pathName >= $lastDate) { $this->deleteDir($pathName); } 

我怎樣才能做到這一點?通過循環和檢查他們的目錄名,

+0

你一個組合我的$ PATH(.trash在所有其他日期命名的目錄存在/目錄)中可以執行一個'find'命令。或者你不在Unix系統上?否則'find/the/root -depth -daystart -mtime +14 -exec rm -rf {} \;'會做你想做的事 – fge

+0

是的,我不想那麼做,我想在php內部做這個該文件將是一個cronjob腳本。 – Karem

+0

一個cron作業,你想在PHP中做到這一點?您可以直接在cron中使用find命令!爲什麼要使用PHP? – fge

回答

0

您需要的opendir()closedir()readdir()

<?php 
$path = "d:/"; 
$dirHandler = opendir($path); 

while($currentDir = readdir($dirHandler)) 
{ 
    if(in_array($currentDir, array('.', '..'))) continue;//skip current and parent dir 

    if(is_dir($path . $currentDir)) 
    { 
     echo $path . $currentDir . "<br />"; 
     //do your process here 
    } 
} 

closedir($dirHandler);