尝试在PHP中使用GZIP将~60kb的索引页面减少到~10kb。除了我的Google Adsense广告没有显示之外,我取得了成功。
为了您的考虑,我已经包含了同一页面的两个实例:
默认内容编码: 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不受影响。
作为旁注。我很想了解(并补救)此错误,但如果不可能,我会考虑将我的广告位更改为异步加载方法作为备份计划。
答案 0 :(得分:1)
在sesion_start()
if (substr_count($_SERVER['HTTP_ACCEPT_ENCODING'], 'gzip')) ob_start("ob_gzhandler"); else ob_start();
include("index_standard.php");
ob_flush();