服务热线 400-660-5555

厦门网站建设
首页 站内资讯

厦门网站建设

站内资讯
厦门网站建设 / 站内资讯 / 产品资讯 / 正文

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

来源: All文章
发布时间:2023-04-19 17:00:07

  BOM是用来判断文本文件是哪一种Unicode编码的标记,其本身是一个Unicode字符(\uFEFF),位于文本文件头部,BOM本来不影响代码的解析,但是php除外,PHP会解析BOM,会输出在页面里,造成前端有占位发生布局位移,如果不了解的phpBOM就会对这个平白多出来的东西感到莫名其妙。

  我们去掉网站php文件里的BOM信息呢

  编辑器可以无保存bom文件,utf-8和utf-8withbom,要保存了bom文件php会报错namespace必须是第一行的代码,现在是bom信息是第一行,虽然你看不到但是他就是在第一行

  我们怎么样通过代码的形式批量的去掉文件的bom信息

  在网站根目录下新建一个nobomb.php的文件,文件的代码为以下内容。主要解决模板多出空的内容、验证码不显示等问题。然后在浏览器直接访问运行nobom.php文件即可。

  ?ph

  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)){

  echofilename:$basedir/$file.checkBOM($basedir/$file).br;

  }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])==239ord($charset[2])==187ord($charset[3])==191){

  if($auto==1){

  $rest=substr($contents,3);

  rewrite($filename,$rest);

  return(fontcolor=redBOMfound,automaticallyremoved./font);

  }else{

  return(fontcolor=redBOMfound./font);

  }

  }elsereturn(BOMNotFound.);

  }

  functionrewrite($filename,$data){

  $filenum=fopen($filename,w);

  flock($filenum,LOCK_EX);

  fwrite($filenum,$data);

  fclose($filenum);

  }

  运行上面的代码就可以清除文件的bom信息上面的截图看是没有发现带有bom的文件的,有bom的文件会出现字体加红色。去掉后访问网站访问正常

* 文章来源于网络,如有侵权,请联系客服删除处理。
在线 咨询

添加动力小姐姐微信

微信 咨询

电话咨询

400-660-5555

我们联系您

电话 咨询
微信扫码关注动力小姐姐 X
qr