我想检查我的服务器上的文件夹是否每隔30分钟超过一个小时,因此我设置了一个cronjob来执行此操作。由于我相当新的PHP,我不得不浏览一下,找到一个解决方案,不删除我的父母/目标目录,我找到了一个!不要删除年龄小于1小时的文件
<?php
deleteContent("/var/www/html/downloads/");
function deleteContent($path){
try{
$iterator = new DirectoryIterator($path);
foreach ($iterator as $fileinfo) {
if($fileinfo->isDot())continue;
if($fileinfo->isDir()){
if(deleteContent($fileinfo->getPathname())){
if((time()-filectime($fileinfo->getPathname())) < 600)
{
@rmdir($fileinfo->getPathname());
}
}
}
if($fileinfo->isFile()){
if((time()-filectime($fileinfo->getPathname())) < 600)
{
@unlink($fileinfo->getPathname());
}
}
}
} catch (Exception $e){
// write log
return false;
}
return true;
}
?>
注意,if((time()-filectime($fileinfo->getPathname())) < 600)
是我找到解决我的时间问题的办法。
该脚本不应该删除小于1小时的文件夹或文件,所以我花了我们现在的时间,并减去了该文件/文件夹上次更改的时间,并将其与600秒( 10分钟)仅用于测试目的。
不幸的是,脚本仍然会删除每个文件,而不管它何时创建。
我做错了什么或有没有人有另一种方法?
感谢
打印time()和filectim e($ fileinfo-> getPathname()函数并检出它们。 – Naga