ANTICHAT.XYZ    VIDEO.ANTICHAT.XYZ    НОВЫЕ СООБЩЕНИЯ    ФОРУМ  
Баннер 1   Баннер 2
Antichat снова доступен.
Форум Antichat (Античат) возвращается и снова открыт для пользователей. Здесь обсуждаются безопасность, программирование, технологии и многое другое. Сообщество снова собирается вместе.
Новый адрес: forum.antichat.xyz
Вернуться   Форум АНТИЧАТ > Программирование > PHP, PERL, MySQL, JavaScript
   
 
 
Опции темы Поиск в этой теме Опции просмотра

GZip сжатие.
  #1  
Старый 05.04.2008, 03:15
Аватар для [x26]VOLAND
[x26]VOLAND
Moderator - Level 7
Регистрация: 07.06.2006
Сообщений: 556
Провел на форуме:
7549607

Репутация: 2702


Отправить сообщение для [x26]VOLAND с помощью ICQ Отправить сообщение для [x26]VOLAND с помощью AIM
Lightbulb GZip сжатие.

Реализация GZip сжатия. Новичкам может помочь.

PHP код:
function Gzip($debug=0$level=9) {

    function 
GzipEnc() {
        if (
headers_sent() || connection_aborted())
        {
            return 
0
        }
        if (
strpos($_SERVER['HTTP_ACCEPT_ENCODING'], 'x-gzip') !== false) return "x-gzip"
        if (
strpos($_SERVER['HTTP_ACCEPT_ENCODING'], 'gzip') !== false) return "gzip";
        return 
0
    }

    
header("Last-Modified: " date('r'time()-60*60*10) ." GMT");
    if (
config('gzip') != 1)
    {
        if (
$debug) echo $sob_end_flush(); return;
    }

    
$enc GzipEnc();
    if (
$enc)
    {
        
$s "\n<!-- Для вывода использовалось сжатие $enc -->\n"
        
$Contents ob_get_contents();
        
ob_end_clean(); 
        if (
$debug)
        {
            
$s .= "<!-- Общий размер файла: ".strlen($Contents)." байт ";
            
$s .= "После сжатия: ".strlen(gzcompress($Contents$level))." байт -->";
            
$Contents .= $s;
        }
        
header("Content-Encoding: $enc");
        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);
        die();
    }
    else
    {
        
ob_end_flush();
        die();
    }

В конец скрипта ставим:
PHP код:
Gzip(true); 
 
Ответить с цитированием
 



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Сжатие pdf cybercoder Болталка 5 13.03.2008 16:30
Сжатие прог echobyte С/С++, C#, Delphi, .NET, Asm 7 10.03.2008 16:25



Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 


Быстрый переход




ANTICHAT.XYZ