网站首页PHP学习

PHP检测并清除文件开头的BOM头

发布时间:2017-07-04编辑:admin阅读(72)

    代码直接记事本打开经常会自动变成含有bom头格式的文本,当我们知道某个文件含有bom头的时候我们经常是使用notapad++的encoding -> convert to utf8 让他删除bom头,但是当我们不知道究竟是项目里哪个文件有bom头的时候,显然此方法不管用,于是我们可以使用以下的代码让他自动检测并且清除bom头

    <?php  /*检测并清除BOM*/  $basedir = dirname(__FILE__);//扫描当前文件路径 可自动设置  $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);  
                    }  
                }  
            }//end while  
        closedir($dh);  
        }//end if($dh  }//end function  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.");  
    }//end function  function rewrite($filename, $data){  
        $filenum = fopen($filename, "w");  
        flock($filenum, LOCK_EX);  
        fwrite($filenum, $data);  
        fclose($filenum);  
    }



    收录情况:百度未收录
    本文地址:http://luvial.cn/content/10070.html
    转载请保留原文地址!

    如果您觉得本文对您有帮助,且您有经济能力,欢迎捐助本站
标签: bom
上一篇:opencart模块二次开发教程
下一篇:一个同城拼车的微信小程序(前端+后端)