• 欢迎访问搞代码网站,推荐使用最新版火狐浏览器和Chrome浏览器访问本网站!
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏搞代码吧

PHP中bom头引发的超级血案-head中的静态文件生成到body里面了

php 搞代码 3年前 (2022-01-22) 27次浏览 已收录 0个评论

【问题现象】:php中生成html文件时head中的静态文件生成到body里面了,检查了一下发现有很多的uft8的php文件,其中有那么几个文件存在有BOM头的文件。

【原因分析】:编码格式错误,使用了utf-8的bom头。

【解决方案】:在根目录下新建一个bom.php文件,并拷贝以下代码进去,重启服务即可

<?phpif (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 = $ba<b>%本文@来源gao@!dai!ma.com搞$$代^@码!网</b><strong>搞代gaodaima码</strong>sedir . "/" . $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);}?>

以上就是PHP中bom头引发的超级血案-head中的静态文件生成到body里面了的内容,更多相关内容请关注搞代码(www.gaodaima.com)!


搞代码网(gaodaima.com)提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发送到邮箱[email protected],我们会在看到邮件的第一时间内为您处理,或直接联系QQ:872152909。本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:PHP中bom头引发的超级血案-head中的静态文件生成到body里面了
喜欢 (0)
[搞代码]
分享 (0)
发表我的评论
取消评论

表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址