[织梦CMS教程] PHP批量去除bom头代码的小工具

[复制链接]
查看1393 | 回复8 | 2019-9-7 14:34:38 | 显示全部楼层 |阅读模式

在 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,对文件绝对安全,亲测过的。从0基础开始学习织梦dedecms建站,分享全套的织梦dedecms网站搭建教程、织梦安装使用教程。 汇聚了最全、最新的织梦cms建站教程。包含dedecms建站、仿站教程;dedecms系统使用常见问题;主题插件推荐下载等!欢迎学习!
回复

使用道具 举报

冷专问 | 2021-4-9 09:58:34 | 显示全部楼层
资源太多了,准备办个会员
回复

使用道具 举报

南辕北辙395 | 2022-6-3 07:28:43 | 显示全部楼层
有情怀的站啊,爱了
回复

使用道具 举报

我是一个梦蛋 | 2023-1-22 02:46:31 | 显示全部楼层
这个下载站资源真齐全
回复

使用道具 举报

梦太晚616 | 2023-2-8 17:13:56 | 显示全部楼层
资源太多了,准备办个会员
回复

使用道具 举报

饺子姑娘 | 2023-3-11 07:24:23 | 显示全部楼层
厉害了,悟空源码资源多教程多!
回复

使用道具 举报

123457466 | 2023-10-11 05:50:43 | 显示全部楼层
我是来白嫖悟空源码的积分的!!!!!
回复

使用道具 举报

痴痴情先生先s | 2023-10-31 20:03:27 | 显示全部楼层
很不错的资源站
回复

使用道具 举报

123457262 | 2023-11-15 08:55:45 | 显示全部楼层
我是来白嫖悟空源码的资源的!
回复

使用道具 举报

清风吹袭断 | 2023-12-2 01:32:17 | 显示全部楼层
悟空源码太厉害,资源真多!
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则