PHP批量去除BOM頭內容資訊代碼,php去除bom代碼
什麼是bom頭?
在utf-8編碼檔案中BOM在檔案頭部,佔用三個位元組,用來標示該檔案屬於utf-8編碼,現在已經有很多軟體識別bom頭,但是還有些不能識別bom頭,比如PHP就不能識別bom頭,這也是用記事本編輯utf-8編碼後執行就會出錯的原因了。
批量去除bom頭代碼如下所示:
<?php if (isset($_GET['dir'])){ //設定檔案目錄 $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")."
"; }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 ("BOM found, automatically removed._http://www.joyphper.net"); } else { return ("BOM found."); } } else return ("BOM Not Found."); } function rewrite ($filename, $data) { $filenum = fopen($filename, "w"); flock($filenum, LOCK_EX); fwrite($filenum, $data); fclose($filenum); } ?>
PS:去掉bom頭的辦法,簡單的是下面兩種:
1、editplus去BOM頭的方法
編輯器調整為UTF8編碼格式後,儲存的檔案前面會多出一串隱藏的字元(也即是BOM),用於編輯器識別這個檔案是否是以UTF8編碼。
運行Editplus,點擊工具,選擇喜好設定,選中檔案,UTF-8標識選擇 總是刪除簽名,
然後對PHP檔案編輯和儲存後的PHP檔案就是不帶BOM的了。
2、ultraedit去除bom頭辦法
開啟檔案後,另存新檔選項的編碼格式裡選擇(utf-8 無bom頭),確定就ok了
怎麼樣,去掉bom頭很簡單吧
再來一段議論utf8的BOM資訊的
BOM是指php檔案本身的儲存方式為帶BOM的UTF-8,普通頁面的中文亂碼方式一般不是由這個原因導致的。
header("Content-type: text/html; charset=utf-8");
這句話控制html輸出頁面的編碼方式,
BOM只有在WINDOWS下採用“記事本”儲存為UTF-8時才會有,這個可以用WINHEX把開始的2個位元組刪掉。
在dreamweaver裡面編碼設定裡面可以設定是否帶BOM,一般只要php輸出的不是圖片(GDI Stream),BOM都不會導致問題。
GDI Stream如果開頭有了額外的 字元就會顯示為 紅叉。
您可能感興趣的文章:
- 批量去除PHP檔案中bom的PHP代碼
- 如何使用PHP批量去除檔案UTF8 BOM資訊
- PHP大量刪除、清除UTF-8檔案BOM頭的代碼執行個體
- PHP批量檢測並去除檔案BOM頭代碼執行個體
- PHP批量去除BOM頭代碼分享
http://www.bkjia.com/PHPjc/1108607.htmlwww.bkjia.comtruehttp://www.bkjia.com/PHPjc/1108607.htmlTechArticlePHP批量去除BOM頭內容資訊代碼,php去除bom代碼 什麼是bom頭? 在utf-8編碼檔案中BOM在檔案頭部,佔用三個位元組,用來標示該檔案屬於utf-8編碼...