thinkphp 框架去掉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);

}


?> 

 

posted @ 2018-04-16 11:47  银河冰枫  阅读(250)  评论(0编辑  收藏  举报