/ufeff,php解决方案

现象:所有ajax不能正常返回数据,浏览器上的代码有个小红点

错误原因:代码中含有非法字符

解决方法:将下面的php放在本地项目运行一下,批量处理非法字符(浏览器直接运行一下即可)

 <?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) { // BOM 的前三个字符的ASCII 码分别为 239 187 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 );    
} 


  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值