快上网专注成都网站设计 成都网站制作 成都网站建设
成都网站建设公司服务热线:028-86922220

网站建设知识

十年网站开发经验 + 多家企业客户 + 靠谱的建站团队

量身定制 + 运营维护+专业推广+无忧售后,网站问题一站解决

PHP网站建设之去除文件bom头信息

BOM是用来判断文本文件是哪一种Unicode编码的标记,其本身是一个Unicode字符("\uFEFF"),位于文本文件头部,BOM本来不影响代码的解析,但是php除外,PHP会解析BOM,会输出在页面里,造成前端有占位发生布局位移,如果不了解的php BOM 就会对这个平白多出来的东西感到莫名其妙。
我们去掉网站php文件里的BOM信息呢
编辑器可以无保存bom文件,utf-8和utf-8 with bom ,要保存了bom文件 php会报错namespace 必须是第一行的代码,现在是bom信息是第一行,虽然你看不到但是他就是在第一行

网站制作1

我们怎么样通过代码的形式批量的去掉文件的bom信息
在网站根目录下新建一个nobomb.php的文件,文件的代码为以下内容。主要解决模板多出空的内容、验证码不显示等问题。然后在浏览器直接访问运行nobom.php文件即可。
if(isset($_GET['dir'])){
$basedir=$_GET['dir'];
}else{
$basedir='.';
}
$auto=1;
checkdir($basedir);
functioncheckdir($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);
}
}
functioncheckBOM($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("BOMfound,automaticallyremoved.");
}else{
return("BOMfound.");
}
}elsereturn("BOMNotFound.");
}
functionrewrite($filename,$data){
$filenum=fopen($filename,"w");
flock($filenum,LOCK_EX);
fwrite($filenum,$data);
fclose($filenum);
}

网站制作2

运行上面的代码就可以清除文件的bom信息

网站制作3

上面的截图看是没有发现带有bom的文件的,有bom的文件 会出现字体加红色。
去掉后访问网站访问正常

网站制作4


文章名称:PHP网站建设之去除文件bom头信息
转载源于:http://6mz.cn/view/241887.html

其他资讯