五月综合缴情婷婷六月,色94色欧美sute亚洲线路二,日韩制服国产精品一区,色噜噜一区二区三区,香港三级午夜理伦三级三

您現(xiàn)在的位置: 365建站網(wǎng) > 365文章 > PHP生成HTML頁(yè)面頂部出現(xiàn)空白部分(#65279字符)的解決辦法

PHP生成HTML頁(yè)面頂部出現(xiàn)空白部分(#65279字符)的解決辦法

文章來(lái)源:365jz.com     點(diǎn)擊數(shù):619    更新時(shí)間:2016-06-18 03:57   參與評(píng)論

只會(huì)在chrome和edge瀏覽器出現(xiàn),ff則不會(huì)出現(xiàn)這個(gè)問(wèn)題。由于該頁(yè)面是由PHP+HTML模板拼接接,因此先后排查了html文件、JavaScript文件、php文件。均未發(fā)現(xiàn)問(wèn)題。

使用chrome F12發(fā)現(xiàn)空白處是一串&#65279字符。通過(guò)搜索,了解到這原來(lái)是UTF-8的編碼問(wèn)題。

我使用的編碼是UTF-8 + BOM,這種編碼方式一般會(huì)在windows操作系統(tǒng)中出現(xiàn),比如WINDOWS自帶的記事本等軟件,在保存一個(gè)以UTF-8編碼的文件時(shí),會(huì)在文件開(kāi)始的地方插入三個(gè)不可見(jiàn)的字符(0xEF 0xBB 0xBF,即BOM)。它是一串隱藏的字符,用于讓記事本等編輯器識(shí)別這個(gè)文件是否以UTF-8編碼。對(duì)于一般的文件,這樣并不會(huì)產(chǎn)生什么麻煩。但對(duì)于 PHP來(lái)說(shuō),BOM是個(gè)大麻煩。因?yàn)镻HP并不會(huì)忽略BOM,所以在讀取、包含或者引用這些文件時(shí),會(huì)把BOM作為該文件開(kāi)頭正文的一部分。根據(jù)嵌入式語(yǔ)言的特點(diǎn),這串字符將被直接執(zhí)行(顯示)出來(lái)。

知道問(wèn)題的原因之后,便很好解決了。
新建一個(gè)文件 bom.php放在根目錄下,代碼如下,執(zhí)行即可!

<?php

//remove the utf-8 boms 
 //by magicbug at gmail dot com 
   
 if (isset($_GET['dir'])){ //config the basedir 
   $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.</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); 
}
?>

如對(duì)本文有疑問(wèn),請(qǐng)?zhí)峤坏浇涣髡搲?,廣大熱心網(wǎng)友會(huì)為你解答!! 點(diǎn)擊進(jìn)入論壇

發(fā)表評(píng)論 (619人查看0條評(píng)論)
請(qǐng)自覺(jué)遵守互聯(lián)網(wǎng)相關(guān)的政策法規(guī),嚴(yán)禁發(fā)布色情、暴力、反動(dòng)的言論。
昵稱(chēng):
最新評(píng)論
------分隔線(xiàn)----------------------------

其它欄目

· 建站教程
· 365學(xué)習(xí)

業(yè)務(wù)咨詢(xún)

· 技術(shù)支持
· 服務(wù)時(shí)間:9:00-18:00
365建站網(wǎng)二維碼

Powered by 365建站網(wǎng) RSS地圖 HTML地圖

copyright © 2013-2024 版權(quán)所有 鄂ICP備17013400號(hào)