我搜索了一些相关的问题,但无法理解。
我想在每24小时后删除文件夹中的所有文件,但有时我会收到警告,有时它会起作用。文件夹路径为c:'wamp'www'Jamil
。
来源:
<?php
$dir = "Jamil"; // directory name
foreach (scandir($dir) as $item) {
if ($item == '.' || $item == '..')
continue;
if((time() - filemtime($item)) >= 30 && is_file($item)){
unlink($dir.DIRECTORY_SEPARATOR.$item);
echo "All files deleted";}
}
//rmdir($dir);
?>
我从各个网站复制了代码。有人能帮忙吗?我收到这个警告:
警告:filemtime(([function.filemtime]:第10行C:''wamp''www''delete1.php中jamil.html的stat失败
如果您使用php脚本,您仍然需要以某种方式安排它运行。因此,您可以使用cron或计划任务来安排删除本身。这里有一个很好的crontab参考。如果你使用Windows为自己编写一个小批量脚本,转到"控制面板",你会得到一个很好的小向导来指导你完成任务调度。
PHP实际上不是用于计划任务的工具。如果您的用户需要随时进行删除,这是很好的,但不适用于计划任务。
试试这个函数;
function wipedir($dir) {
try{
if(is_dir($dir)){
$mydir = opendir($dir);
while(false !== ($file = readdir($mydir))) {
if($file != "." && $file != "..") {
chmod($dir.$file, 0777);
if(is_dir($dir.$file)) {
chdir('.');
destroy($dir.$file.'/');
rmdir($dir.$file) or DIE("Unable to delete $dir$file");
}else{
unlink($dir.$file) or DIE("Unable to delete $dir$file");
}
}
}
closedir($mydir);
return true;
}else{return true;}
}catch (Exception $e){return false;}
}
所以使用
$dir = 'Jamil';
wipedir($dir);
这应该放在crontab等以指定间隔运行的文件中。
is_file($item)
尝试
if(is_dir($dir.DIRECTORY_SEPARATOR.$item) && $item != ".." && $item != ".")