Файл: vzabave/sys/func/gzip.php
Строк: 53
<?php
if(@$_SERVER['HTTP_ACCEPT_ENCODING'])
{$compress = strtolower($_SERVER['HTTP_ACCEPT_ENCODING']);}
else
{$compress = strtolower(@$_SERVER['HTTP_TE']);}
if(substr_count($compress,'deflate')) // Если поддерживается deflate
{
function compress_output_deflate($output)
{return gzdeflate(trim($output),4);}
$method = 'deflate';
header('Content-Encoding: deflate');
ob_start('compress_output_deflate');
ob_implicit_flush(0);
}
elseif(substr_count($compress,'gzip')) // Если поддерживается gzip
{
function compress_output_gzip($output)
{return gzencode(trim($output),4);}
$method = 'gzip';
header('Content-Encoding: gzip');
ob_start('compress_output_gzip');
ob_implicit_flush(0);
}
elseif(substr_count($compress,'x-gzip')) // Если поддерживается x-gzip
{
function compress_output_x_gzip($output)
{
$x = "x1fx8bx08x00x00x00x00x00";
$size = strlen($output);
$crc = crc32($output);
$output = gzcompress(trim($output),4);
$output = substr($output, 0, strlen($output) - 4);
$x.= $output;
$x.= pack('V',$crc);
$x.= pack('V',$size);
return $x;
}
$method = 'x-gzip';
header('Content-Encoding: x-gzip');
ob_start('compress_output_x_gzip');
ob_implicit_flush(0);
}
function gzip()
{
global $db, $method, $rurm;
$contents = ob_get_contents();
$in = strlen($contents); // Сколько весит исходная страница
if($method)
{
if($method == 'deflate')
{$out = strlen(gzdeflate($contents,4));}
elseif($method == 'gzip')
{$out = strlen(gzencode($contents,4));}
elseif($method == 'x-gzip')
{$out = strlen(gzcompress($contents,4));}
$percent = 100-(100/($in/$out));
print '|Gzip '.round($percent,1).'%';
}
}
?>