PHP中出現BOM字元\ufeff,PHP去掉詭異的BOM \ufeff
研究一個PHP專案的時候,今天專案突然打不開了。
前幾天還好好的,用Chrome看了下Response的內容,AJAX頁面和普通HTML頁面內容前面有一個紅色的點。
滑鼠移上去,提示“\ufeff”。
百度下,發現是BOM字元。
前幾天還好好的,難道是因為今天替換某些內容,導致的?
從網上找了個php程式,掃描所有的檔案,把BOM字元去掉。
媽蛋,為啥總是有這麼多不同的標準。
程式碼:
<?php
header('content-Type: text/html; charset=utf-8');
if(isset($_GET['dir'])){ //設定檔案目錄,如果沒有設定,則自動設定為當前檔案所在目錄
$basedir=$_GET['dir'];
}else{
$basedir='.';
}
$auto=1;/*設定為1標示檢測BOM並去除,設定為0標示只進行BOM檢測,不去除*/
echo '當前查詢的目錄為:'.$basedir.'當前的設定是:';
echo $auto?'檢測檔案BOM同時去除檢測到BOM檔案的BOM<br />':'只檢測檔案BOM不執行去除BOM操作<br />';
checkdir($basedir);
function checkdir($basedir){
if($dh=opendir($basedir)){
while (($file=readdir($dh)) !== false){
if($file != '.' && $file != '..'){
if(!is_dir($basedir.'/'.$file)){
echo '檔案: '.$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並已自動去除</font>');
}else{
return (' <font color=red>找到BOM</font>');
}
}else{
return (' 沒有找到BOM');
}
}
function rewrite($filename,$data){
$filenum=fopen($filename,'w');
flock($filenum,LOCK_EX);
fwrite($filenum,$data);
fclose($filenum);
}
?>
程式碼來自:http://www.douban.com/note/332229277/
相關文章
- 詳解BOM頭以及去掉BOM頭的方法
- 批量去除PHP檔案中bom的PHP程式碼PHP
- JN專案-maven專案在打war包時出現非法字元: '\ufeff'Maven字元
- PHP檔案頭BOM頭問題PHP
- php批量檢測並去除BOM頭的程式碼PHP
- 在php開發過程中去除BOM頭的方法PHP
- BOM操作
- 物料BOM和生產訂單BOM的區別
- PHP 去除 bom 頭,JSON_decode () 返回 NULL,PHP 無法對字串做處理PHPJSONNull字串
- JS-bomJS
- BOM – Clipboard APIAPI
- js中的BOM物件JS物件
- BOM的兩種理解
- JavaScript DOM、BOM操作JavaScript
- BOM之location物件物件
- JavaScript的組成 | DOM/BOMJavaScript
- 字元編碼發展史6 — BOM位元組序標記字元
- 什麼是BOM物件物件
- BOM學習總結
- javaScript事件,Bom,Dom物件JavaScript事件物件
- JavaScript(ECMAScript+BOM+DOM)JavaScript
- javaScript BOM物件分析整理JavaScript物件
- BOM選擇設定
- SAP BOM詳細解析
- BOM展開學習
- MES系統中的BOM為何如此重要?先進的BOM體系怎麼建立?
- 《JavaScript 闖關記》之 BOMJavaScript
- 初識BOM及其部分物件物件
- js中bom物件有哪些JS物件
- JavaScript基礎之BOM操作JavaScript
- JS BOM篇(一)window物件JS物件
- BOM與DOM之DOM操作
- 微服務之BOM定義微服務
- document、DOM、window、BOM區別
- 順展BOM實用SQLSQL
- (原)BOM斷階原則
- BOM模組的介面表使用總結
- 去掉php框架CI預設url中的index.phpPHP框架Index