最近、自分のサイトで gzip の使用を開始しましたが、Opera を除くすべてのブラウザーで魅力的に機能し、データが破損しているためコンテンツを解凍できないというエラーが表示されました。テストとグーグルで収集できることから、gzipとチャンク転送エンコーディングの両方を使用すると問題が発生する可能性があります。css-files のような小さなファイルを要求してもエラーが発生しないという事実も、その方向性を示しています。
これは既知の問題ですか、それとも私が考えていないことが他にありますか?
また、Content-Length ヘッダーの送信と関係がある可能性があると述べた人もいます。
これは、私のコードの最も関連性の高い部分の簡略版です。
$contents = ob_get_contents();
ob_end_clean();
header('Content-Encoding: '.$encoding);
print("\x1f\x8b\x08\x00\x00\x00\x00\x00");
$size = strlen($contents);
$contents = gzcompress($contents, 9);
$contents = substr($contents, 0, $size);
print($contents);
exit();