2011-12-20 17 views
7

PHPでStackoverflow APIからの応答を読み取るにはどうすればよいですか?応答はGZIPで行われます。私は見つけました。次の提案:PHPでStackoverflow APIからGZIP-edの応答を読み取るにはどうすればよいですか?

$url = "http://api.stackoverflow.com/1.1/questions/" . $question_id; 
$data = file_get_contents($url); 
$data = http_inflate($data); 

が、関数http_inflate()は、私が使用しているインストールでは使用できません。

他にも簡単な方法がありますか?

答えて

18

クールな方法 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); 

edited-- 他の方法を使用して彼らはAccept-Encoding http heaを送信しないのでder。

+0

これは実際に機能します!以前は 'compress.zlib'も試みましたが、完全なURLを適切にフォーマットしていませんでした。ありがとうございます(+1)! – Jiri

+0

私のインストールでは、簡単な方法(ストリームラッパー) – Hamish

+0

'gzdecode()'は利用できません。 – Jiri

関連する問題