這篇文章主要為大家展示了“PHP如何批量去除BOM頭內(nèi)容信息”,內(nèi)容簡而易懂,條理清晰,希望能夠幫助大家解決疑惑,下面讓小編帶領大家一起研究并學習一下“PHP如何批量去除BOM頭內(nèi)容信息”這篇文章吧。
扶風網(wǎng)站建設公司成都創(chuàng)新互聯(lián)公司,扶風網(wǎng)站設計制作,有大型網(wǎng)站制作公司豐富經(jīng)驗。已為扶風上千提供企業(yè)網(wǎng)站建設服務。企業(yè)網(wǎng)站搭建\外貿(mào)網(wǎng)站制作要多少錢,請找那個售后服務好的扶風做網(wǎng)站的公司定做!什么是bom頭?
在utf-8編碼文件中BOM在文件頭部,占用三個字節(jié),用來標示該文件屬于utf-8編碼,現(xiàn)在已經(jīng)有很多軟件識別bom頭,但是還有些不能識別bom頭,比如PHP就不能識別bom頭,這也是用記事本編輯utf-8編碼后執(zhí)行就會出錯的原因了。
批量去除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")." <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 found, automatically removed._<a href=http://www.joyphper.net>http://www.joyphper.net</a></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); } ?>
PS:去掉bom頭的辦法,簡單的是下面兩種:
1、editplus去BOM頭的方法
編輯器調(diào)整為UTF8編碼格式后,保存的文件前面會多出一串隱藏的字符(也即是BOM),用于編輯器識別這個文件是否是以UTF8編碼。
運行Editplus,點擊工具,選擇選項,選中文件,UTF-8標識選擇 總是刪除簽名,
然后對PHP文件編輯和保存后的PHP文件就是不帶BOM的了。
2、ultraedit去除bom頭辦法
打開文件后,另存為選項的編碼格式里選擇(utf-8 無bom頭),確定就ok了
怎么樣,去掉bom頭很簡單吧
再來一段議論utf8的BOM信息的
BOM是指php文件本身的存儲方式為帶BOM的UTF-8,普通頁面的中文亂碼方式一般不是由這個原因?qū)е碌摹?/p>
header("Content-type: text/html; charset=utf-8");
這句話控制html輸出頁面的編碼方式,
BOM只有在WINDOWS下采用“記事本”存儲為UTF-8時才會有,這個可以用WINHEX把開始的2個字節(jié)刪掉。
在dreamweaver里面編碼設置里面可以設置是否帶BOM,一般只要php輸出的不是圖片(GDI Stream),BOM都不會導致問題。
GDI Stream如果開頭有了額外的 字符就會顯示為 紅叉。
以上是“PHP如何批量去除BOM頭內(nèi)容信息”這篇文章的所有內(nèi)容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內(nèi)容對大家有所幫助,如果還想學習更多知識,歡迎關注創(chuàng)新互聯(lián)行業(yè)資訊頻道!
網(wǎng)頁題目:PHP如何批量去除BOM頭內(nèi)容信息-創(chuàng)新互聯(lián)
鏈接地址:http://bm7419.com/article2/dscpic.html
成都網(wǎng)站建設公司_創(chuàng)新互聯(lián),為您提供外貿(mào)網(wǎng)站建設、軟件開發(fā)、電子商務、定制開發(fā)、定制網(wǎng)站、網(wǎng)站收錄
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)
猜你還喜歡下面的內(nèi)容