Я использую функцию php file_get_contents()
для выполнения запроса HTTP. Чтобы сохранить пропускную способность, я решил добавить заголовок "Accept-Encoding: gzip"
, используя stream_context_create()
.
Очевидно, что file_get_contents()
выводит строку с кодировкой gzip, поэтому я использую gzuncompress()
для декодирования закодированной строки, но получаю сообщение об ошибке с данными, переданными как аргумент.
[...] PHP Warning: gzuncompress(): data error in /path/to/phpscript.php on line 26
Я знаю, что есть еще одна функция, способная распаковывать данные gzipped gzdecode()
, но она не включена в мою версию PHP (возможно, она доступна только в SVN).
Я знаю, что cUrl декодирует gzip-поток "на лету" (без каких-либо проблем), но кто-то предложил мне использовать file_get_contents()
вместо cUrl.
Знаете ли вы какой-либо другой способ распаковать gzip-данные на PHP или почему gzuncompress()
выводит предупреждение? Абсурдно, что gzuncompress()
работает не так, как ожидалось.
Примечания: Проблема, конечно же, в PHP: HTTP-запрос сделан в Tumblr API, который дает хорошо закодированный ответ.