実行できる最善の方法の 1 つは、インラインにする必要のないインライン スクリプトを削除することです。
PHPファイルの先頭にこれがあります:
ob_start();
ob_implicit_flush(0);
次に、次の関数を含めます: (メモにはどこから盗んだかは記載されていません)
function print_gzipped_page() {
$HTTP_ACCEPT_ENCODING = $_SERVER["HTTP_ACCEPT_ENCODING"];
if( headers_sent() )
$encoding = false;
else if( strpos($HTTP_ACCEPT_ENCODING, 'x-gzip') !== false )
$encoding = 'x-gzip';
// *** I can't recall why I disabled this one ***
// I had some device that it didn't work with.
//else if( strpos($HTTP_ACCEPT_ENCODING,'gzip') !== false )
// $encoding = 'gzip';
else {
$encoding = false;
}
$contents = ob_get_clean();
if ($encoding)
{
$_temp1 = strlen($contents);
if ($_temp1 < 2048) { // no need to waste resources in compressing very little data
print($contents);
} else {
header('Content-Encoding: '.$encoding);
print("\x1f\x8b\x08\x00\x00\x00\x00\x00");
$contents = gzcompress($contents, 9);
$contents = substr($contents, 0, $_temp1);
print($contents);
}
}
else {
print($contents);
}
}
ページの一番下で、次のように呼び出します。
print_gzipped_page();
コードが示すように、既にヘッダーを送信している場合、つまり、基本的に、既に任意の出力を送信している場合、このコードは何も圧縮しません。