加入收藏 | 设为首页 | 会员中心 | 我要投稿 PHP编程网 - 黄冈站长网 (http://www.0713zz.com/)- 数据应用、建站、人体识别、智能机器人、语音技术!
当前位置: 首页 > 运营中心 > 建站资源 > 经验 > 正文

UTF-8文件BOM信息自动检测和自动消除源码

发布时间:2022-01-04 01:35:24 所属栏目:经验 来源:互联网
导读:BOM信息是文件开头的一串隐藏的字符,用于让某些编辑器识别这是个UTF-8编码的文件。 特别是当你用记事本修改网页文件或者PHP文件时,会产生BOM信息,通过审查元素会在body开头处发现一个可见的控制符,导致页面头部会出现一个空白行;如果是织梦的程序也会
BOM信息是文件开头的一串隐藏的字符,用于让某些编辑器识别这是个UTF-8编码的文件。
 
特别是当你用记事本修改网页文件或者PHP文件时,会产生BOM信息,通过审查元素会在body开头处发现一个可见的控制符,导致页面头部会出现一个空白行;如果是织梦的程序也会引起验证码不显示等问题。
 
 
 
 
 
BOM自动检测和自动清除工具
 
https://pan.baidu.com/s/1tztJaZvrDpkZVz9vdHLSIg
 
源码
 
<?php/** * bom.php * * @author dedehtml   * @license http://www.dedehtml.com * @lastmodify 2018-10-10 * @description 这里代码为PHP方式去除当前目录及子目录所有文件BOM信息,只要将此代码文件放到根目录下,然后浏览器运行访问就可以了 * @demo http://www.dedehtml.com/bom.php */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") . " <br>";        } 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 ("<font color='red'>BOM found, automatically removed.</font>");    } else {      return ("<font color='red'>BOM found.</font>");    }  } else    return ("BOM Not Found.");} function rewrite($filename, $data){  $filenum = fopen($filename, "w");  flock($filenum, LOCK_EX);  fwrite($filenum, $data);  fclose($filenum);}
使用说明
 
下载压缩包,解压,把bom.php文件放到网站根目录
 
浏览器上打开 http://域名/bom.php
 
 
 
打开后等待几十秒,让文件执行自动清楚文件的bom操作,有问题的文件会有红色文字提示,文件会自动处理好。
 
执行完后,删除bom.php防止被别人利用,织梦的程序重新生成整站
 
 
还有一种情况是不是在body下面,而是在其他代码下面的
 
 
 
那就要检查当前模板代码开始的地方是不是多写了其他东西,把多余的东西删除即可。

(编辑:PHP编程网 - 黄冈站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    热点阅读