Как я могу прочитать ответ API-интерфейса Stackoverflow в PHP? Ответ – GZIP-ed. Я нашел, например, следующее предложение:
$url = "http://api.stackoverflow.com/1.1/questions/" . $question_id; $data = file_get_contents($url); $data = http_inflate($data);
но функция http_inflate()
недоступна при установке, которую я использую.
Есть ли еще какие-то другие способы сделать это?
Крутой способ http://www.php.net/manual/en/wrappers.compression.php
Обратите внимание на использование обтекателя потока, compress.zlib
$url = "compress.zlib://http://api.stackoverflow.com/1.1/questions/" . $question_id; echo $data = file_get_contents($url, false, stream_context_create(array('http'=>array('header'=>"Accept-Encoding: gzip\r\n"))));
или с помощью завитка
$ch = curl_init(); curl_setopt_array($ch, array( CURLOPT_URL => $url , CURLOPT_HEADER => 0 , CURLOPT_RETURNTRANSFER => 1 , CURLOPT_ENCODING => 'gzip' )); echo curl_exec($ch);
отредактирован – удалены другие методы, поскольку они не отправляют HTTP-заголовок Accept-Encoding
.