多多色-多人伦交性欧美在线观看-多人伦精品一区二区三区视频-多色视频-免费黄色视屏网站-免费黄色在线

國內最全IT社區平臺 聯系我們 | 收藏本站
阿里云優惠2
您當前位置:首頁 > php開源 > php教程 > firefox提示:內容編碼錯誤 無法顯示您嘗試查看的頁面

firefox提示:內容編碼錯誤 無法顯示您嘗試查看的頁面

來源:程序員人生   發布時間:2014-01-24 21:14:37 閱讀次數:3960次

今天打幫客戶整理一個網站時發現在firefox提示:內容編碼錯誤 無法顯示您嘗試查看的頁面,因為它使用了無效或者不支持的壓縮格式了,我一看客戶是php站,導致原因可能是ob_gzhandler原因。

firefox錯誤碼:內容編碼錯誤,無法顯示您嘗試查看的頁面,因為它使用了無效或者不支持的壓縮格式,請聯系網站的所有者以告知此問題

錯誤原因和解決辦法:

1、保證php程序沒有任何警告或出錯的提示

2、PHP代碼ob_start('ob_gzhandler')導致的,導致的原因有兩種:

   a、服務器不支持這種壓縮格式,可使用function_exists('ob_gzhandler')判斷,解決方法 ob_start('ob_gzhandler')改為ob_start();

   b、使用ob_start('ob_gzhandler')時候前面已經有內容輸出,檢查前面內容以及require include調用文件的內容。若無法找到可以在調用其它文件前使用ob_start(),調用之后使用 ob_end_clean () 來清除輸出的內容;

3、set_magic_quotes_runtime()函數:

提示:Function set_magic_quotes_runtime() is deprecated,導致這個提示的原因是在PHP5.3后此特性已經關閉,在PHP6中已經完全移除此特性,也就是這個函數已經不存在了。你可以注釋 或者刪除掉出錯的行,或者是在set_magic_quotes_runtime()前面加@符號。

4、PHP5.30版本,默認不再支 持這樣的語法,輸出變量需使用php echo $username;?>語法才可以。你可以通過將 php.ini 中的 short_open_tag 設置為 On,以兼容原來的語法。

php關于ob_start('ob_gzhandler')啟用GZIP壓縮的bug,如果使用ob_start("ob_gzhandler"); 則ob_clean()后面的輸出將不顯示,這是個bug,可以用ob_end_clean();ob_start("ob_gzhandler"); 代替ob_clean();否則后面輸出內容將是空。 

  1. <?php 
  2. error_reporting(E_ALL); 
  3. ob_start("ob_gzhandler"); 
  4. echo "content"
  5. ob_clean(); 
  6. echo "more content"
  7. ?> 

上面的代碼期望輸出more content實際上什么內容也不會輸出,下面就正常了:

  1. <?php 
  2. error_reporting(E_ALL); 
  3. ob_start("ob_gzhandler"); 
  4. echo "content"
  5. ob_end_clean(); 
  6. ob_start("ob_gzhandler"); 
  7. echo "more content"
  8. ?> 

下面自定義一個回調函數再測試:

  1. <?php 
  2. function my_ob_gzhandler($buffer,$mod){ 
  3.    header("Content-Encoding: gzip"); 
  4.    return gzencode($buffer, 9, FORCE_GZIP);  
  5. error_reporting(E_ALL); 
  6. ob_start("my_ob_gzhandler"); 
  7. echo "content"
  8. ob_clean(); 
  9. echo "more content"
  10. ?> 

上面是正常的,但使用ob_end_clean代替ob_clean后又會導致后面的輸出不會顯示,因此即使是下面的代碼依然會在使用ob_clean或者ob_end_clean后會導致輸出為空。

  1. <?php 
  2. if (ini_get('zlib.output_compression')) { 
  3.    if (ini_get('zlib.output_compression_level') != 9) { 
  4.       ini_set('zlib.output_compression_level''9'); 
  5.    }  
  6.    ob_start(); 
  7. else { 
  8.    if (strstr($_SERVER['HTTP_ACCEPT_ENCODING'], "gzip")) { 
  9.       ob_start("ob_gzhandler"); 
  10.    } else { 
  11.       ob_start(); 
  12.    }  
  13. }  
  14. ?> 

最穩定的啟用頁面壓縮的方法應該類似下面

  1. <?php 
  2. if(extension_loaded('zlib')) { 
  3. ini_set('zlib.output_compression''On'); 
  4. ini_set('zlib.output_compression_level''3'); 
  5. ?> 

但如果一定要使用ob_gzhandler來啟用頁面壓縮就要注意本文的第一句話了,事實上,下面的代碼只是瀏覽器不顯示:

  1. error_reporting(E_ALL); 
  2. ob_start("ob_gzhandler"); 
  3. echo "content"
  4. ob_clean(); 
  5. echo "more content"

但如果測試一下

  1. telnet localhost 80 
  2. GET /test.php HTTP/1.0 
  3. <Enter> 
  4. <Enter> 

將會返回如下信息

HTTP/1.1 200 OK
Date: Fri, 20 Feb 2009 15:40:17 GMT
Server: Apache/2.2.6 (Win32) PHP/5.2.5
X-Powered-By: PHP/5.2.5
Vary: Accept-Encoding
Content-Length: 12
Connection: close
Content-Type: text/html
more content

失去了跟主機的連接,可以看出more content已經輸出.

生活不易,碼農辛苦
如果您覺得本網站對您的學習有所幫助,可以手機掃描二維碼進行捐贈
程序員人生
------分隔線----------------------------
分享到:
------分隔線----------------------------
關閉
程序員人生
主站蜘蛛池模板: 成人久久久久久 | 欧美综合图区亚欧综合图区 | 在线播放一区二区三区 | 日韩高清一区二区 | 日本一级毛片免费播放 | 在线成人免费视频 | 最好免费高清视频在线看 | 久久国产精品永久免费网站 | 久草成人网 | 女网址www女影院 | 日本高清wwww免费视频 | 国产一区二区三区免费在线视频 | 日本不卡视频在线播放 | 久久精品免费全国观看国产 | 久久春色| 超刺激福利丝袜网站 | jizz免费一区二区三区 | 日韩一区二区三区免费视频 | 日本欧美日韩 | 亚洲综合网在线 | 一区二区三区四区无限乱码 | 亚洲国产一区在线二区三区 | 另类小说国产 | 精品国产免费久久久久久 | 国产黄色免费在线观看 | 亚洲综合久久成人69 | 一区二区三区精品国产欧美 | 激情网站视频 | 国产激情久久久久影 | 欧美一区2区| 黄色三级生活片 | 香蕉久久夜色精品国产2020 | 最新中文字幕在线视频 | 亚洲精品国产一区二区 | 日韩欧美精品综合久久 | 国产aⅴ精品一区二区三区久久 | 91久久人澡人人添人人爽 | 噜噜噜噜影院 | 成人a毛片久久免费播放 | 老年人一级特黄aa大片 | 波多野结衣一区 |