您好,登錄后才能下訂單哦!
這篇文章主要介紹了php中如何去掉ufeff,具有一定借鑒價值,感興趣的朋友可以參考下,希望大家閱讀完這篇文章之后大有收獲,下面讓小編帶著大家一起了解一下。
php去掉ufeff的方法:1、將PHP文件保存為無dom格式;2、通過“function checkBOM($filename){...}”方法檢查并去掉ufeff即可。
本文操作環境:windows7系統、PHP7.1版、DELL G3電腦
php 去除文件的BOM\ufeff
今天遇到一個問題,請求接口返回的數據不符合格式,用瀏覽器打印出來又看不出什么問題,最后發現是數據頭部有\UFEFF(BOM頭),搜索下,是文件編碼格式為UTF8-BOM引起的,開發時編輯器保存格式有誤,解決辦法有兩種:
1、文件量少,可以用notopad++ 保存為無dom格式(格式->轉為UTF-8 無dom格式)
2、文件很多時,用下列代碼,運行后可以對指定目錄(不傳參則為當前目錄)下所有文件進行修復
<?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); } ?>
感謝你能夠認真閱讀完這篇文章,希望小編分享的“php中如何去掉ufeff”這篇文章對大家有幫助,同時也希望大家多多支持億速云,關注億速云行業資訊頻道,更多相關知識等著你來學習!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。