24小时后自动删除文件和包含文件的文件夹

时间:2016-12-27 09:57:29

标签: php time

我在使用PHP删除文件和包含文件的文件夹时遇到问题。我想在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小时后删除该文件夹。请告诉我我在哪里做错了?

2 个答案:

答案 0 :(得分: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;
}

答案 1 :(得分:0)

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

您需要检查“现在”与创建文件的时间之间的差异是否超过24小时,而不是更少。