删除3天以前的日志文件,Fatal error

diffmaker 2012-04-16 10:16:55
我不懂PHP,现在想实现一个功能,删除指定目录中三天以前的文件(日志),就在百度上找的一个删除目录的函数,如下

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);
}

报错:Fatal error: Unsupported operand types in D:\wamp\www\Player\playlogviewer.php on line 36
对应的是这一行代码:if(time() - $file_time > 3600 * 24 * 3)

麻烦看看是什么问题,谢谢!

...全文
94 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
diffmaker 2012-04-16
  • 打赏
  • 举报
回复
多谢诸位,特别是T5500,问题解决。
蓝色的雨哎 2012-04-16
  • 打赏
  • 举报
回复
array stat ( string $filename );
返回的是数组。
$file_time=@stat($file);//读取文件的最后更新时间
if(time() - $file_time > 3600 * 24 * 3){ //这里就要用数组的。去查一下stat ()

用 $stat['mtime']
xian2222 2012-04-16
  • 打赏
  • 举报
回复
if(time() - $file_time > 3600 * 24 * 3)
你把它用()分开试试
if((time()-$file_time)>(3600*24*3)){}
蓝色的雨哎 2012-04-16
  • 打赏
  • 举报
回复
致命错误:不支持的操作数据类型
产生原因,将不符合数据类型的数据传送给了某些函数。尤其是容易出现在将一个数组传给了一个函数,这个函数应该接受的参数是数字。
乌镇程序员 2012-04-16
  • 打赏
  • 举报
回复
$stat = @stat($file);
$file_time=$stat['mtime'];//读取文件的最后更新时间

21,887

社区成员

发帖
与我相关
我的任务
社区描述
从PHP安装配置,PHP入门,PHP基础到PHP应用
社区管理员
  • 基础编程社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧