我在使用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小时后删除该文件夹。请告诉我我在哪里做错了?
答案 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小时,而不是更少。