ob_start(); ob_implicit_flush(0); function CheckCanGzip() { global $HTTP_ACCEPT_ENCODING; if (headers_sent() || (connection_status()!=0) ){ return 0; } // Comprobamos que el servidor accepta compresión de datos. if (strpos($_SERVER["HTTP_ACCEPT_ENCODING"], 'x-gzip') !== false) return "x-gzip"; if (strpos($_SERVER["HTTP_ACCEPT_ENCODING"],'gzip') !== false) return "gzip"; return 0; }#end function /* $level contiene el nivel de compresión: de 0 a 9, donde 0=ninguno y 9=máximo. */ function GzDocOut($level=1,$debug=0) { $ENCODING = CheckCanGzip(); if ($ENCODING) { print "\n\n"; $Contents = ob_get_contents(); //$Contents=oneLine($Contents); ob_end_clean(); if ($debug) { $s = "
Not compress length: ".strlen($Contents);
$s .= "
Compressed length: ".strlen(gzcompress($Contents,$level));
$Contents .= $s;
}#end if
header("Content-Encoding: $ENCODING");
print "\x1f\x8b\x08\x00\x00\x00\x00\x00";
$Size = strlen($Contents);
$Crc = crc32($Contents);
$Contents = gzcompress($Contents,$level);
$Contents = substr($Contents, 0, strlen($Contents) - 4);
print $Contents;
print pack('V',$Crc);
print pack('V',$Size);
exit;
} else {
ob_end_flush();
exit;
}#end if
}#end function
function oneLine($myHTML) {
$myHTML=eregi_replace("\r\n","",$myHTML);
$myHTML=eregi_replace("\n","",$myHTML);
$myHTML=eregi_replace(chr(9),"",$myHTML);
return $myHTML;
}#end function
?>