thinkphp 框架去掉bom(当你的网站出现头部有一条空白)

本文介绍了一个实用的解决方案,用于解决ThinkPHP项目中因UTF-8 BOM编码导致的页面顶部出现空白条的问题。通过提供的一段PHP脚本,可以自动扫描并修复项目文件中的BOM编码,从而消除空白条。

当你的项目头部无缘无故出现了一条白条,这个是utf8文件编码可能是utf8-bom如果不是,文件本身编码问题的话!那木就是thinkphp自身对文件进行utf-8-bom编码,此时去掉白条的方法就是,在项目根目录,执行此段代码!ok了

<?php



if(isset($_GET['dir'])){ //config the basedir

  $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);

}


?> 

 

转载于:https://www.cnblogs.com/xxzz/p/8855148.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值