欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  后端开发

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

程序员文章站 2022-05-06 22:53:24
...
删除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']
删除3天以前的日志文件,Fatal error,该怎么解决

声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn核实处理。

相关文章

相关视频