Показать сообщение отдельно
Старый 11.05.2005, 12:10     # 1
Sheryld
Full Member
 
Регистрация: 29.05.2002
Сообщения: 544

Sheryld Луч света в тёмном царствеSheryld Луч света в тёмном царствеSheryld Луч света в тёмном царствеSheryld Луч света в тёмном царствеSheryld Луч света в тёмном царстве
Gzip encoded output in php(+)

Собственно проблема в том, что динамические(но не все) страницы(поиск, например) не работают.

Делаю примерно так:

$content = $t->get(); //контент из темплейта(html code)
$crc = pack('V',crc32($content));
$size = pack('V',strlen($content));
$content = gzcompress($content); //сжимаем
$output = "\x1f\x8b\x08\x00\x00\x00\x00\x00"; //заголовок gzip
$output .= substr($content, 0, strlen($content) - 4); //«откусываем» последних 4 байта
$output .= $crc; //контрольная сумма
$output .= $size; //длина
Header("Content-Encoding: gzip");
echo $output;
exit;

Проблема в том, что длина страницы постоянно меняется(даже если она по идее одинаковая должна быть), т.е. проблема видимо кроется в рассинхронизации вызова фун-ий. Т.е. нерпавильно считается длина или записываются не все данные. В следствии чего бразуер выдает либо gzip-контент, либо пустую страницу.

С другими страницами все ок(в том числе и динамическими, но менее нагруженными).

страница поиска обрабатывает параметры через get,
т.е. урлы вида:

index.php?
action=search&keywords=keywords&searchFilter=onlyTitle&searchType=or
__________________
убрано по просьбе администратора
Sheryld вне форума