2016-12-27 124 views
3

我遇到了使用PHP刪除文件和包含文件的文件夾的問題。我想在24小時後自動刪除服務器上的文件夾和包含文件夾的文件。我正在創建保存上傳文件的文件夾。我也嘗試了一些代碼,但它不適合我。任何幫助,將不勝感激。謝謝!24小時後自動刪除文件和包含文件的文件夾

這是爲什麼我嘗試: -

$path = dirname(__FILE__).'/Docs/'.$foldername; 
    if ($handle = opendir($path)) { 

    while (false !== ($filesss = readdir($handle))) { 
     if ((time()-filectime($path.'/'.$filesss)) < 86400) { // 86400 = 60*60*24 

      unlink($path.'/'.$filesss); 


     } 
    } 
    } 

我試試這個代碼,但它不是爲我工作我想要的方式。此代碼現在刪除我的文件。但是我想在24小時後刪除這些文件,並且還要在24小時後刪除包含這些文件的文件夾。請告訴我我在哪裏做錯了?

+0

可能只是反向ineqaility標誌? (時間() - filectime()<86400獲得_younger_比24小時的文件的真實) – Timurib

回答

2

創建Cron文件並寫入以下代碼。

function Delete($path) 
{ 
    if (is_dir($path) === true) { 
     $files = array_diff(scandir($path), array('.', '..')); 

     foreach ($files as $file) 
     { 
      Delete(realpath($path) . '/' . $file); 
     } 

     return rmdir($path); 
    } else if (is_file($path) === true) { 
     return unlink($path); 
    } 

    return false; 
} 
+0

你在哪裏指定了時間? –

+0

還有一個問題可以不創建Cron文件? –

+0

cron時間設置午夜12:00上午 –

0
if ((time() - filectime($path.'/'.$filesss)) >= 86400) 

您需要檢查「現在」,當創建文件的時間之間的差異超過24小時,而不是更少。

+0

它不工作,因爲你可以看到我已經在我的代碼中。 –

+1

@PranaySute你正在使用'<'運算符。使用'> ='檢查時間差是否等於或大於24h。 –

+0

哦,我會嘗試這一個,讓你知道。 –

相關問題