PHPのドキュメントは言う、そのob_gzhandler
にはzlib
の拡張機能がインストールされている必要がありますので、それが本当であることを確認してください。
if (extension_loaded('zlib')){
echo "zlib installed";
}
インストールされている場合、ob_gzhandler
を使用するとコンテンツが圧縮されます。問題は、応答ヘッダーにHTTPヘッダーContent-Encoding: gzip
が表示されないことです。このヘッダは、Webサーバーによって設定されていませんが、あなたはheader()
機能により、PHPからそれを設定することができます。
if (extension_loaded('zlib') && !ini_get('zlib.output_compression')){
header('Content-Encoding: gzip');
ob_start('ob_gzhandler');
}
I:あなたは解決策を持っているこれら二つのステップを組み合わせて、だから、
header('Content-Encoding: gzip');
.ini
の設定もチェックしてください。 zlib.output_compression
がOn
の場合、すべての出力が圧縮されるため、ob_gzhandler
は冗長です。
このコードは有効ですが、どのようなPHPが使用されるべきではありません。出力の圧縮とヘッダーの設定はウェブサーバーです。関連する回答、configuring .htaccess fileを読んでください。そうすれば、Apacheは圧縮を行い、正しい応答ヘッダーを設定します。ゼロpreoutputを必要ob_start(ob_gzhandler)
してくださいより多くの記述の間で
zlib.output_compression_level
、私はまだ理解していない! Tnx – Farshad@Farshad、私はいくつかの情報を追加しました。それが役に立てば幸い。 – wormi4ok