ホームページ php教程 php手册 firefox提示:内容编码错误 无法显示您尝试查看的页面

firefox提示:内容编码错误 无法显示您尝试查看的页面

Jun 13, 2016 am 09:57 AM
firefox コンテンツ クライアント 試す あなた ヒント きちんとした 見せる チェック コーディング Webサイト 間違い ページ

今天打帮客户整理一个网站时发现在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();
否则后面输出内容将是空。
error_reporting(E_ALL);
ob_start("ob_gzhandler");
echo "content";
ob_clean();
echo "more content";
?>
上面的代码期望输出more content实际上什么内容也不会输出。

下面就正常了
error_reporting(E_ALL);
ob_start("ob_gzhandler");
echo "content";
ob_end_clean();
ob_start("ob_gzhandler");
echo "more content";
?>

下面自定义一个回调函数再测试
function my_ob_gzhandler($buffer,$mod){
   header("Content-Encoding: gzip");
   return gzencode($buffer, 9, FORCE_GZIP);
}

error_reporting(E_ALL);
ob_start("my_ob_gzhandler");
echo "content";
ob_clean();
echo "more content";
?>
上面是正常的,但使用ob_end_clean代替ob_clean后又会导致后面的输出不会显示。

因此即使是下面的代码依然会在使用ob_clean或者ob_end_clean后会导致输出为空。
if (ini_get('zlib.output_compression')) {
   if (ini_get('zlib.output_compression_level') != 9) {
      ini_set('zlib.output_compression_level', '9');
   }
   ob_start();
} else {
   if (strstr($_SERVER['HTTP_ACCEPT_ENCODING'], "gzip")) {
      ob_start("ob_gzhandler");
   } else {
      ob_start();
   }
}
?>

最稳定的启用页面压缩的方法应该类似下面
if(extension_loaded('zlib')) {
ini_set('zlib.output_compression', 'On');
ini_set('zlib.output_compression_level', '3');
}
?>

但如果一定要使用ob_gzhandler来启用页面压缩就要注意本文的第一句话了。

事实上,下面的代码只是浏览器不显示
error_reporting(E_ALL);
ob_start("ob_gzhandler");
echo "content";
ob_clean();
echo "more content";

但如果测试一下

telnet localhost 80
GET /test.php HTTP/1.0

将会返回如下信息

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已经输出

 

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

Video Face Swap

Video Face Swap

完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

Google Chrome でこのタブのコンテンツが共有されているというメッセージが表示された場合はどうすればよいですか? Google Chrome でこのタブのコンテンツが共有されているというメッセージが表示された場合はどうすればよいですか? Mar 13, 2024 pm 05:00 PM

Google Chrome でこのタブのコンテンツが共有されているというメッセージが表示された場合はどうすればよいですか? Google Chrome を使用して新しいタブを開くと、このタブのコンテンツが共有されているというメッセージが表示されることがあります。それでは何が起こっているのでしょうか?このサイトでは、このタブのコンテンツの共有を促す Google Chrome の問題についての詳細な紹介をユーザーに提供します。 Google Chrome は、このタブのコンテンツが共有されているというメッセージを表示します。解決策: 1. Google Chrome を開きます。ブラウザの右上隅に 3 つの点が表示されます。「Google Chrome のカスタマイズと制御」アイコンをマウスでクリックして変更します。アイコン。 2. クリックすると、下にGoogle Chromeのメニューウィンドウが表示され、「その他のツール」にマウスが移動します。

操作を完了できません (エラー 0x0000771) プリンター エラー 操作を完了できません (エラー 0x0000771) プリンター エラー Mar 16, 2024 pm 03:50 PM

プリンターの使用中に、操作を完了できませんでした (エラー 0x00000771) などのエラー メッセージが表示された場合は、プリンターが切断されている可能性があります。この場合、以下の方法で問題を解決できます。この記事では、Windows 11/10 PC でこの問題を解決する方法について説明します。エラー メッセージ全体には、「操作を完了できませんでした (エラー 0x0000771)」が示されています。指定されたプリンターは削除されました。 Windows PC で 0x00000771 プリンター エラーを修正する プリンター エラーを修正するには、操作を完了できませんでした (エラー 0x0000771)。指定されたプリンターは Windows 11/10 PC で削除されています。次の解決策に従ってください: 印刷スプールを再起動します

Windows Update プロンプト エラー 0x8024401c エラーの解決策 Windows Update プロンプト エラー 0x8024401c エラーの解決策 Jun 08, 2024 pm 12:18 PM

目次 解決策 1 解決策 21. Windows Update の一時ファイルを削除します。 2. 破損したシステム ファイルを修復します。 3. レジストリ エントリを表示および変更します。 4. ネットワーク カード IPv6 をオフにします。 5. WindowsUpdateTroubleshooter ツールを実行して修復します。 6. ファイアウォールをオフにします。およびその他の関連するウイルス対策ソフトウェア。 7. WidowsUpdate サービスを閉じます。解決策 3 解決策 4 Huawei コンピュータの Windows アップデート中に「0x8024401c」エラーが発生する 症状 問題 原因 解決策 まだ解決されませんか?最近、システムの脆弱性のため、Web サーバーを更新する必要があります。サーバーにログインすると、エラー コード 0x8024401c が表示されます。

Xiangxiangfuzhai アプリでエラーが表示されるのはなぜですか? Xiangxiangfuzhai アプリでエラーが表示されるのはなぜですか? Mar 19, 2024 am 08:04 AM

表示エラーは、Xiangxiang Fuzhai アプリで発生する可能性のある問題です。一部のユーザーは、Xiangxiang Fuzhai アプリでエラーが表示される理由がわからない場合があります。ネットワーク接続の問題、バックグラウンド プログラムの多さ、誤った登録情報などが原因である可能性があります。ユーザー向けにアプリ表示エラーの解決方法を編集部が紹介しますので、興味のある方はぜひご覧ください! Xiangxiang Fuzhai アプリでエラーの回答が表示されるのはなぜですか: ネットワーク接続の問題、バックグラウンド プログラムが多すぎる、間違った登録情報など。 詳細: 1. [ネットワークの問題] 解決策: デバイスの接続ネットワーク ステータスを確認し、再接続するか、別のネットワーク接続を選択してください。使用できます。 2. [バックグラウンド プログラムが多すぎる] 解決策: 実行中の他のプログラムを閉じてシステムを解放すると、ソフトウェアの実行速度が向上します。 3. 【登録情報に誤りがある場合】

Linux のおっと: このエラーの意味の詳細な説明 Linux のおっと: このエラーの意味の詳細な説明 Mar 21, 2024 am 09:06 AM

LinuxOops: このエラーの意味の詳細な説明、特定のコード例が必要 LinuxOops とは何ですか? Linux システムでは、「おっと」とは、カーネル内の重大なエラーによりシステムがクラッシュする状況を指します。 Oops は実際には、致命的なエラーが発生したときにシステムを停止し、開発者が問題を診断して修正できるように関連するエラー情報を出力するカーネル クラッシュ メカニズムです。通常、エラーはカーネル空間で発生し、ユーザー空間のアプリケーションとは何の関係もありません。カーネルが遭遇したとき

中国語でCheat Engineを設定するにはどうすればよいですか? Cheat Engine設定中国式方法 中国語でCheat Engineを設定するにはどうすればよいですか? Cheat Engine設定中国式方法 Mar 13, 2024 pm 04:49 PM

CheatEngine は、ゲームのメモリを編集および変更できるゲーム エディタです。しかし、デフォルトの言語は中国語以外なので、多くの友人にとって不便です。今回はCheatEngineで中国語を設定する方法を編集者が詳しく紹介しますので、お役に立てれば幸いです。設定方法 1: 1. ダブルクリックしてソフトウェアを開き、左上隅の「編集」をクリックします。 2. 次に、下のオプションリストで「設定」をクリックします。 3. 開いたウィンドウインターフェイスで、左側の列の「言語」をクリックします

Baidu Tieba アプリで操作が頻繁すぎるというメッセージが表示されますが、何が問題なのでしょうか? Baidu Tieba アプリで操作が頻繁すぎるというメッセージが表示されますが、何が問題なのでしょうか? Apr 01, 2024 pm 05:06 PM

Baidu Tieba アプリは、操作が頻繁すぎることを示すプロンプトを表示します。このプロンプトは、通常、プラットフォームの通常の操作とユーザー エクスペリエンスを維持して、悪意のある画面スパム、広告スパム、その他の不適切な動作を防ぐためのものです。具体的な処理方法については、共有されたチュートリアルを読むことができます編集者による。 Baidu Tieba アプリで「操作が頻繁すぎる」というメッセージが表示される場合の対処方法を共有する 1. 「操作が頻繁すぎる」というメッセージが表示されたら、しばらく待つ必要がありますが、不安な場合は、別のことを先に行ってください。通常、しばらく待つと、このプロンプトメッセージは自動的に消え、正常に使用できるようになります。 2. 長時間待っても「操作が頻繁すぎます」と表示される場合は、Tieba Emergency Bar、Tieba Feedback Bar、およびその他の公式 Tieba にアクセスしてこの現象を報告し、公式担当者に解決を依頼することができます。 3.

LaravelページでCSSが正しく表示されない場合の対処方法 LaravelページでCSSが正しく表示されない場合の対処方法 Mar 10, 2024 am 11:33 AM

「CSS を正しく表示できない Laravel ページを処理する方法、特定のコード例が必要」 Laravel フレームワークを使用して Web アプリケーションを開発する場合、ページで CSS スタイルを正しく表示できず、ページのレンダリングが異常になるという問題が発生することがあります。スタイル。ユーザー エクスペリエンスに影響します。この記事では、Laravel ページで CSS が正しく表示されない場合に対処するいくつかの方法を紹介し、開発者がこの一般的な問題を解決するのに役立つ具体的なコード例を示します。 1. ファイルパスを確認する まずCSSファイルのパスを確認します。

See all articles