ob_start();
ob_implicit_flush(0);
functionCheckCanGzip(){
global$HTTP_ACCEPT_ENCODING;
if(headers_sent()||connection_timeout()||connection_aborted()){
return0;
}
if(strpos($HTTP_ACCEPT_ENCODING,'x-gzip')!==false)return"x-gzip";
if(strpos($HTTP_ACCEPT_ENCODING,'gzip')!==false)return"gzip";
return0;
}
/*$level=compressionlevel0-9,0=none,9=max*/
functionGzDocOut($level=1,$debug=0){
$ENCODING=CheckCanGzip();
if($ENCODING){
print"nn";
$Contents=ob_get_contents();
ob_end_clean();
if($debug){
$s="
Notcompresslength:".strlen($Contents);
$s.="
Compressedlength:".strlen(gzcompress($Contents,$level));
$Contents.=$s;
}
header("Content-Encoding:$ENCODING");
print"x1fx8bx08x00x00x00x00x00";
$Size=strlen($Contents);
$Crc=crc32($Contents);
$Contents=gzcompress($Contents,$level);
$Contents=substr($Contents,0,strlen($Contents)-4);
print$Contents;
printpack('V',$Crc);
printpack('V',$Size);
exit;
}else{
ob_end_flush();
exit;
}
}
?>