我最近開始在我的網站上使用gzip,它在除Opera之外的所有瀏覽器上運行得很好,因爲它提供了一個錯誤,指出由於數據損壞而無法解壓內容。從我可以從測試和搜索結果中收集的信息,可能會同時使用gzip和分塊傳輸編碼。在請求像css文件這樣的小文件時沒有錯誤的事實也指出了這一點。使用分塊傳輸編碼和gzip
這是一個已知問題還是有沒有其他的東西,我沒有想過?
有人還提到它可能與發送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();
你的第一個輸出是什麼意思,你爲什麼在這種情況下使用'substr'? – Gumbo 2010-04-30 06:57:42