Curl, sockets, fopen и gzip.

Alex2003

Новичок
Curl, sockets, fopen и gzip.

Суть проста.

Для экономии трафика, в начале скрипта ставится

PHP:
ob_start("ob_gzhandler");
так вот теперь трабл в том, что никаким методом я эти данные вырвать не могу.

PHP:
gzdeflate
выдаёт варнинг и false

PHP:
curl_setopt($ch, CURLOPT_ENCODING , "gzip");
выдаёт кодированную мессагу.

fopen тоже не пашет.

Кто сталкивался - пните в нужном направлении.
 

Acabar

Guest
я чегото не понимаю, какие данные тебе нужны?

у тебя вопрос звучит как два...

у меня два ответа крутяться: ответ1: ob_get_contents()
ответ2: твой браузер или сервак или что то не поддерживает gzip...
 

Alex2003

Новичок
Я просил писать тех, кто сталкивался. (без обид)

Сервак отдаёт корректный gzip. Браузером открывается.
Я его с другого сервака не могу получить plain.

Надо с базы в магазины прайсы передавать, допустим. Оба серверы. Один кроном с другого дёргает раз в час обновления. Обновления отдаются зазипаные... надо отзипать.

Вот. Рома, ты где?
 

fixxxer

К.О.
Партнер клуба
PHP:
if (isset($_SERVER['HTTP_ACCEPT_ENCODING']) && strpos($_SERVER['HTTP_ACCEPT_ENCODING'], 'gzip') !== false)
   ob_start("ob_gzhandler");
-~{}~ 20.07.04 20:08:

Хотя
PHP:
Before ob_gzhandler() actually sends compressed data, it determines what type of content encoding the browser will accept ("gzip", "deflate" or none at all) and will return its output accordingly. All browsers are supported since it's up to the browser to send the correct header saying that it accepts compressed web pages.
(c) мануал...

Ты случайно не шлешь сам Accept-Encoding: gzip ?
 

Alex2003

Новичок
Я пишу. Потому что мне надо отсылать данные гзипом. :)
Проблема не в том, как их отсылать plain, а в том - как принять gzip. Закомменить ob_start() я могу, но тогда смысл его писать?


Я понять не могу - почему gzdeflate не пашет??? Ведь должен!

-~{}~ 21.07.04 15:20:

Итак.
Получаю контент,
сохраняю его во временный файл
gzopen получает файл без проблем, как выяснилось.
И вуаля, у меня на руках то, что я хотел.


Нормального метода не существует???
 

Profic

just Profic (PHP5 BetaTeam)
1) а начерта сохранть файл? gzdeflate/gzuncompress не помогают?
2) можно найти стрим-враппер для var://, который получает доступ прямо к переменной :) и на него натравить gzopen :)
 

Alex2003

Новичок
Отваливаются, потому что "данные инкорректны". оба способа не работают, к сожалению. Не понимаю только - почему. :( Приходится спину ногой чесать
 
Сверху