Модераторы: skyboy, MoLeX, Aliance, ksnk
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> GZIP сжатие 
:(
    Опции темы
deMike
Дата 31.7.2006, 17:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


M.Shinoda
**


Профиль
Группа: Участник
Сообщений: 361
Регистрация: 12.10.2004
Где: Санкт-Петербург

Репутация: нет
Всего: 0



Подскажите пожалуйста как сделать вывод данных на странице через GZIP сжатие? 
PM MAIL WWW   Вверх
AztEK
Дата 31.7.2006, 17:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 723
Регистрация: 4.1.2005

Репутация: 1
Всего: 18



1) Что тема делает в "Профессиональной разработке"??
2) Обсуждалось миллион раз. Юзай поиск.
3) Я делаю так:
Код

// $contents - содержимое страницы. Можно через ob_ функции
if(!(headers_sent() || connection_aborted() || in_array('gzcompress', get_defined_functions())))
{
    if(strpos(getenv('HTTP_ACCEPT_ENCODING'), 'x-gzip') !== false)
    {
        $encoding = 'x-gzip';
    }
    elseif(strpos(getenv('HTTP_ACCEPT_ENCODING'), 'gzip') !== false)
    {
        $encoding = 'gzip';
    }
    else $encoding = false;
            
    if($encoding)
    {
        header('Content-Encoding: ' . $encoding);
        echo "\x1f\x8b\x08\x00\x00\x00\x00\x00";
        $contents = gzcompress($contents, 3); // 3 - уровень сжатия (3 имхо оптимально)
        echo substr($contents,  0,  strlen($contents) - 4) . pack('V', crc32($contents)) . pack('V', strlen($contents));
    }
    else echo $contents;
}
else
{
    echo $contents;
}
 


--------------------
Linux is like wigwam -- no windows, no gates, apache inside.
PM MAIL Jabber   Вверх
deMike
Дата 31.7.2006, 19:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


M.Shinoda
**


Профиль
Группа: Участник
Сообщений: 361
Регистрация: 12.10.2004
Где: Санкт-Петербург

Репутация: нет
Всего: 0



Браузер пишет такую штуку: Возникла проблема при декодировании данных. Возможно, в связи с повреждением данных. 
PM MAIL WWW   Вверх
GiV
Дата 31.7.2006, 19:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 137
Регистрация: 13.7.2006
Где: rus|53

Репутация: нет
Всего: 9



Фарволы не портят ничего?

Попробуйте от сюда: http://www.php.net/ob-gzhandler (см комментарии) 
PM MAIL WWW ICQ   Вверх
GZep
Дата 16.8.2006, 17:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


участник Винграда
***


Профиль
Группа: Завсегдатай
Сообщений: 1528
Регистрация: 7.7.2006
Где: Москва

Репутация: нет
Всего: 32



Вот как делай:

в самом начале скрипта
Код

<?php
$start_time = microtime(true);
function ob_saveCookieAfter($s) {
    setcookie("page_size_after", strlen($s));
    return $s;
}
function ob_saveCookieBefore($s) {
    setcookie("page_size_before", strlen($s));
    return $s;
}
ob_start("ob_saveCookieAfter");
ob_start("ob_gzhandler", 9);
ob_start("ob_saveCookieBefore");
?>

в месте вывода статистики код на java script
Код

<script language="JavaScript" type="text/javascript">
<!--
function getCookie(name) {
    var p = name + "=";
    var si = document.cookie.indexOf(p);
    if (si == -1)
        return null;
    var ei = document.cookie.indexOf(";", si + p.length);
    if (ei == -1)
        ei = document.cookie.length;
    return unescape(document.cookie.substring(si + p.length, ei));
}
var size_before = getCookie("page_size_before");
var size_after = getCookie("page_size_after");
var gen_time = getCookie("page_gen_time");
if (gen_time) {
    document.write("[Сгенерировано за: " + gen_time + " секунды] ")
} else {
    document.write("[Невозможно узнать время генерации скрипта] ");
}
if (size_before && size_after) {
    document.write("[GZip: " + size_after + "b/" + size_before + "b (" + (100-Math.round(size_after/size_before*100))+"%)]")
} else {
    document.write("[GZip выключен]");
}
// -->
</script>

следующая строчка должна быть последней
Код

<? setcookie ("page_gen_time", sprintf('%.5f', microtime(true) - $start_time)); ?>




Вот и все! спасибо хотяб скажи, если, конечно, понравится. или проголосуй.... smile 
Удачи!

Это сообщение отредактировал(а) GZep - 16.8.2006, 17:26


--------------------
user posted imageuser posted image
PM MAIL WWW ICQ Skype GTalk   Вверх
GZep
Дата 30.8.2006, 14:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


участник Винграда
***


Профиль
Группа: Завсегдатай
Сообщений: 1528
Регистрация: 7.7.2006
Где: Москва

Репутация: нет
Всего: 32



Кстати, что, фаервол может обломать GZip?

Если так, то это плёхо...... smile 


--------------------
user posted imageuser posted image
PM MAIL WWW ICQ Skype GTalk   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | PHP: Extensions | Следующая тема »


 




[ Время генерации скрипта: 0.0673 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.