PHP实例:检测并清除文件开头的BOM信息

发布时间:2020-02-09编辑:脚本学堂
本文分享一例php代码,用于检测并清除掉文件开头的BOM信息,有需要的朋友可以参考下。

本节内容:
php检测与清除文件头中BOM信息

例子:
 

复制代码 代码示例:
<?php
ini_set('memory_limit', '-1'); 
/*检测并清除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;  // www.jb200.com
    $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); 
}//end function 

您可能感兴趣的文章:
Php批量去除bom头信息的实现代码
php去掉bom头的代码分享
PHP 过滤页面中的BOM数据的简单实例
检测php文件是否有bom头的代码
批量清除php文件中bom的方法
检查并清除php文件中bom的函数
有关 UTF-8 BOM 导致样式错乱的解决方法
BOM与DOM的区别分析
有关UTF-8 编码中BOM的检测与删除