删除3天以前的日志文件,Fatal error
我不懂PHP,现在想实现一个功能,删除指定目录中三天以前的文件(日志),就在百度上找的一个删除目录的函数,如下
<!--
Code highlighting produced by Actipro CodeHighlighter (freeware)
http://www.CodeHighlighter.com/
-->
function del_directory($dir){
if(!($mydir = @dir($dir))){
return;
}
while($file = $mydir->read()){
if(is_dir("$dir$file") && $file!='.' && $file!='..'){
@chmod("$dir$file", 0777);
del_dir("$dir$file");
}elseif(is_file("$dir/$file")){
$file_time=@stat($file);//读取文件的最后更新时间
if(time() - $file_time > 3600 * 24 * 3){
@chmod("$dir/$file", 0777);
@unlink("$dir/$file");
}
}
}
$mydir->close();
@chmod($dir, 0777);
@rmdir($dir);
}
$stat = @stat($file);
$file_time=$stat['mtime'];//读取文件的最后更新时间
<br><font color="#e78608">------解决方案--------------------</font><br>致命错误:不支持的操作数据类型<br>产生原因,将不符合数据类型的数据传送给了某些函数。尤其是容易出现在将一个数组传给了一个函数,这个函数应该接受的参数是数字。
<br><font color="#e78608">------解决方案--------------------</font><br>if(time() - $file_time > 3600 * 24 * 3)<br>你把它用()分开试试<br>if((time()-$file_time)>(3600*24*3)){}
<br><font color="#e78608">------解决方案--------------------</font><br>array stat ( string $filename );<br>返回的是数组。<br> $file_time=@stat($file);//读取文件的最后更新时间<br> if(time() - $file_time > 3600 * 24 * 3){ //这里就要用数组的。去查一下stat ()<br><br>用 $stat['mtime']<br><div class="clear"></div>
每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号