<?
ob_start();
ob_implicit_flush(0);
function CheckCanGzip(){ 
if (headers_sent() || connection_status() != 0 || function_exists('gzcompress') == false || in_array("zlib", get_loaded_extensions()) == false){
return 0;
} 
if (strpos(getenv("HTTP_ACCEPT_ENCODING"), 'x-gzip') !== false){
return "x-gzip";
}
if (strpos(getenv("HTTP_ACCEPT_ENCODING"),'gzip') !== false){
return "gzip";
}
return 0; 
} 
/* $level = compression level 0-9, 0=none, 9=max */
function GzDocOut($level=1,$debug=0, $dont=0){ 
global $fm;
$ENCODING = CheckCanGzip(); 
if ($ENCODING){ 
$Contents = ob_get_contents(); 
ob_end_clean(); 
if ($debug){

$normalsize = strlen($Contents);
$compressed = strlen(gzcompress($Contents,$level));

$s = "/*<div align=\"center\"><div align=\"left\" style=\"width:200px;\"></p>Compression: $ENCODING"; 
$s .= "<br>Normal document size: ".$fm->formatFileSize($normalsize); 
$s .= "<br>Compressed size: ".$fm->formatFileSize($compressed);
$Contents .= $s."</div></div>*/"; 
}
if (!$dont) {
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;
if (!$dont) {
print pack('V',$Crc);
print pack('V',$Size);
}
exit;
}else{ 
ob_end_flush(); 
exit; 
} 
}
?>