Просмотр файла gzip.php

Размер файла: 4.66Kb
<?
// Скрипт Файлового Менеджера
// Результат 3-х дневного круглосуточного бдения =)
//
// Версия: 0.1d
// Обновления Ищите Здеся: http://wapinet.ru/script/
// Автор: Gemorroj
//
// Номера кошельков. Надеюсь понятно для чего =)
// WMR 167963845445
// WMZ 225757696726



// Узнаем какие типы сжатия поддерживает браузер
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($output,4); // 4 - это степень компресии, возможные варианты от 0 до 9. Больше 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($output,4); // 4 - это степень компресии, возможные варианты от 0 до 9. Больше 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 = "\x1f\x8b\x08\x00\x00\x00\x00\x00";
    $size = strlen($output);
    $crc = crc32($output);
    $output = gzcompress($output,4); // 4 - это степень компресии, возможные варианты от 0 до 9. Больше 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 info_compress()
{
// Переменная $method - метод сжатия, переменная $compress - все поддерживаемые браузером методы сжатия
global $method,$compress;

if($method)
{
$contents = ob_get_contents();

$in = strlen($contents); // Сколько весит исходная страница

// В зависимости от метода сжатия считаем сколько весит сжатая страница
if($method == 'deflate')
{
$out = strlen(gzdeflate($contents,4)); // 4 - это степень компресии, возможные варианты от 0 до 9. Больше 4 ставить не следует, в степени компрессии выигрыша нет, а нагрузка на сервер растет.
}
elseif($method == 'gzip')
{
$out = strlen(gzencode($contents,4)); // 4 - это степень компресии, возможные варианты от 0 до 9. Больше 4 ставить не следует, в степени компрессии выигрыша нет, а нагрузка на сервер растет.
}
elseif($method == 'x-gzip')
{
$out = strlen(gzcompress($contents,4)); // 4 - это степень компресии, возможные варианты от 0 до 9. Больше 4 ставить не следует, в степени компрессии выигрыша нет, а нагрузка на сервер растет.
}

// Процент сжатия
$percent = round(100-(100/($in/$out)),1);

// Выводим всю хуйню в браузер
// Редактируйте что Вам надо сами
print 'IN: '.$in.' байт<br/>
OUT: '.$out.' байт<br/>
Сжатие: '.$percent.' %<br/>
Метод: '.$method.'<br/>';
//Поддерживаемые методы компрессии: '.$compress;
}
else
{
print 'Сжатие не поддерживается<br/>
Поддерживаемые методы компрессии: '.$compress;
}
}
?>