PHP批量去除BOM頭內容資訊代碼,php去除bom代碼_PHP教程

來源:互聯網
上載者:User

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編碼...

  • 聯繫我們

    該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

    如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

    A Free Trial That Lets You Build Big!

    Start building with 50+ products and up to 12 months usage for Elastic Compute Service

    • Sales Support

      1 on 1 presale consultation

    • After-Sales Support

      24/7 Technical Support 6 Free Tickets per Quarter Faster Response

    • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.