PHP で GZIP を使用して ~60kb のインデックス ページを ~10kb に縮小しようとしています。Google Adsense 広告が表示されないことを除けば、成功を収めています。
ご参考までに、同じページの 2 つの実際の例を含めました。
デフォルトのコンテンツ エンコーディング: http://openmicfinder.co.uk/index.php (広告表示)
GZIP コンテンツ エンコーディング: http://openmicfinder.co.uk/index2.php (広告が表示されない)
私が使用しているコードは次のとおりです (この投稿からわかるかもしれません: PHP Manual GZip Encoding ):
function _compress($data) {
$supportsGzip = strpos( $_SERVER['HTTP_ACCEPT_ENCODING'], 'gzip' ) !== false;
if ( $supportsGzip ) {
$content = gzencode( trim( preg_replace( '/\s+/', ' ', $data ) ), 9);
} else {
$content = $data;
}
$offset = 60 * 60;
$expire = "expires: " . gmdate("D, d M Y H:i:s", time() + $offset) . " GMT";
header('Content-Encoding: gzip');
header("content-type: text/html; charset: UTF-8");
header("cache-control: must-revalidate");
header( $expire );
header( 'Content-Length: ' . strlen( $content ) );
header('Vary: Accept-Encoding');
echo $content;
}
ob_start();
include("index_standard.php");
$contents = ob_get_clean();
ob_end_flush();
_compress($contents);
他のJavascriptは影響を受けないので、これは私を困惑させます。
補足として。このバグを理解して修正したいのですが、それが不可能な場合は、バックアップ プランとして広告スロットを非同期読み込み方式に変更することを検討します。