Я использую функцию 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, который дает хорошо закодированный ответ.