2016-12-27 100 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

哦,我会尝试这一个,让你知道。 –