<? 
/* 
** Title.........: PHP4 HTTP Compression Speeds up the Web 
** Version.......: 1.20 
** Author........: catoc <catoc@163.net> 
** Filename......: gzdoc.php 
** Last changed..: 18/10/2000 
** Usage........: 
**                 No space before the beginning of the first '<?' tag. 
**                 ------------Start of file---------- 
**                 |<? 
**                 | include('gzdoc.php'); 
**                 |?> 
**                 |<HTML> 
**                 |... the page ... 
**                 |</HTML> 
**                 |<? 
**                 | gzdocout(); 
**                 |?> 
**                 -------------End of file----------- 
*/ 
ob_start(); 
ob_implicit_flush(0); 
function CheckCanGzip(){ 
    global $HTTP_ACCEPT_ENCODING;    
    if (headers_sent() || connection_aborted()){ 
        return 0; 
    } 
    if (strpos($HTTP_ACCEPT_ENCODING, 'x-gzip') !== false) return "x-gzip"; 
    if (strpos($HTTP_ACCEPT_ENCODING,'gzip') !== false) return "gzip"; 
    return 0; 
} 
/* $level = compression level 0-9, 0=none, 9=max */
function GzDocOut($level=5,$debug=0){ 
    $ENCODING = CheckCanGzip(); 
    if ($ENCODING){ 
     //   print "\n<!-- Compressed with: $ENCODING -->\n"; 
        $Contents = ob_get_contents(); 
        ob_end_clean(); 
        if ($debug){ 
            $s = "<p>Not compress length: ".strlen($Contents); 
            $s .= "<br />Compressed length: ".strlen(gzcompress($Contents,$level));
            $Contents .= $s; 
        }
        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; 
    } 
} 
?>