最新公告
  • 欢迎您光临DT模板网,本站秉承服务宗旨 履行“站长”责任,销售只是起点 服务永无止境!立即加入我们
  • PHP批量去除bom头代码的小工具


    aitecms 群里有网友抱怨了好几天说本地的验证码一直无法显示,后来听说解决了,问其如何解决的,说是去除了文件 bom 就好了。后来百度到一篇文章也说 dedecms 的验证码不能显示,某次解决了文件 bom 后竟然好了,于是本篇文章就显得很重要了。

    网上转载的,出处已经不可考了,不知道原作者是谁,在这里先向作者表示感谢。

    代码如下:

    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")." 
    "; }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 ("BOM found, automatically removed."); } else { return ("BOM found."); } } else return ("BOM Not Found."); } function rewrite($filename, $data) { $filenum = fopen($filename, "w"); flock($filenum, LOCK_EX); fwrite($filenum, $data); fclose($filenum); }

    保存为一个php文件,放到网站根目录下,可以遍历文件夹并自动清除bom,对文件绝对安全,亲测过的。

    DT模板网上源码供源码爱好者(站长)学习研究使用。借鉴职业开发人员的代码写法,快速提升自己。部分源码需以前VIP用户分享,VIP费用供我们用来买源码,服务器开支。源码具有可复制性,部分源码被不断分享出去,但源码本身的性质不变,仅供本地环境下学习研究使用,如果你直接拿来做站,又做了违法违规的网站,请自行承担一切法律后果。
    DT模板网 » PHP批量去除bom头代码的小工具

    发表评论

    • 3572会员总数(位)
    • 744资源总数(个)
    • 1本周发布(个)
    • 0 今日发布(个)
    • 594稳定运行(天)

    提供最优质的资源集合

    立即查看 了解详情