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

来源:互联网 发布:ubuntu syslog 过大 编辑:程序博客网 时间:2024/05/16 12:12

当你的项目头部无缘无故出现了一条白条,这个是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);


}


?> 
原创粉丝点击