您好,欢迎访问一九零五行业门户网

删除3天以前的日志文件,Fatal error,该怎么解决

删除3天以前的日志文件,fatal error
我不懂php,现在想实现一个功能,删除指定目录中三天以前的文件(日志),就在百度上找的一个删除目录的函数,如下
php code 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)
麻烦看看是什么问题,谢谢!
------解决方案--------------------
php code$stat = @stat($file);$file_time=$stat['mtime'];//读取文件的最后更新时间
------解决方案--------------------
致命错误:不支持的操作数据类型
产生原因,将不符合数据类型的数据传送给了某些函数。尤其是容易出现在将一个数组传给了一个函数,这个函数应该接受的参数是数字。
------解决方案--------------------
if(time() - $file_time > 3600 * 24 * 3)
你把它用()分开试试
if((time()-$file_time)>(3600*24*3)){}
------解决方案--------------------
array stat ( string $filename );
返回的是数组。
 $file_time=@stat($file);//读取文件的最后更新时间
 if(time() - $file_time > 3600 * 24 * 3){ //这里就要用数组的。去查一下stat ()
用 $stat['mtime']

其它类似信息

推荐信息