加入收藏 | 设为首页 | 会员中心 | 我要投稿 武汉站长网 (https://www.027zz.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

PHP批量去掉bom头代码的小工具

发布时间:2022-01-15 17:27:08 所属栏目:PHP教程 来源:互联网
导读:在 aitecms 群里有网友抱怨了好几天说本地的验证码一直无法显示,后来听说解决了,问其如何解决的,说是去除了文件 bom 就好了。后来百度到一篇文章也说 dedecms 的验证码不能显示,某次解决了文件 bom 后竟然好了,于是本篇文章就显得很重要了。 网上转载
  在 aitecms 群里有网友抱怨了好几天说本地的验证码一直无法显示,后来听说解决了,问其如何解决的,说是去除了文件 bom 就好了。后来百度到一篇文章也说 dedecms 的验证码不能显示,某次解决了文件 bom 后竟然好了,于是本篇文章就显得很重要了。
 
  网上转载的,出处已经不可考了,不知道原作者是谁,在这里先向作者表示感谢。
 
  代码如下:
  
 
  <?php    /*     * PHP批量去除bom头代码的小工具     * http://blog.kilvn.com/     */    if (isset($_GET['dir'])){ //设置文件目录        $basedir=$_GET['dir'];    }else{        $basedir = '.';    }    $auto = 1;    checkdir($basedir);    function checkdir($basedir){        if ($dh = opendir($basedir)) {            while (($file = readdir($dh)) !== false) {                if ($file != '.' && $file != '..'){                    if (!is_dir($basedir."/".$file)) {                        echo "filename: $basedir/$file ".checkBOM("$basedir/$file")." <br>";                    }else{                        $dirname = $basedir."/".$file;                        checkdir($dirname);                    }                }            }        closedir($dh);        }    }    function checkBOM($filename) {        global $auto;        $contents = file_get_contents($filename);        $charset[1] = substr($contents, 0, 1);        $charset[2] = substr($contents, 1, 1);        $charset[3] = substr($contents, 2, 1);        if (ord($charset[1]) == 239 && ord($charset[2]) == 187 && ord($charset[3]) == 191) {            if ($auto == 1) {                $rest = substr($contents, 3);                rewrite ($filename, $rest);                return ("<font color=red>BOM found, automatically removed.</font>");            } else {                return ("<font color=red>BOM found.</font>");            }        }        else return ("BOM Not Found.");    }    function rewrite($filename, $data) {        $filenum = fopen($filename, "w");        flock($filenum, LOCK_EX);        fwrite($filenum, $data);        fclose($filenum);    }
 
  保存为一个php文件,放到网站根目录下,可以遍历文件夹并自动清除bom,对文件绝对安全,亲测过的。

(编辑:武汉站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    热点阅读