2

スクリプトを使用してこの URL を取得しようとしています: http://api.alarabiya.net/sections/2/

しかし、受け取った JSON 応答は、ブラウザーで直接開いた場合よりもはるかに小さく、

CURL を介してこの URL を試し、ブラウザーの同じ USER-AGENT とブラウザーで使用されるすべての要求ヘッダーを設定したことに注意してください。それでも応答が小さくなります。

file_get_contents だけを使用した例を次に示します。

<?php 
    echo file_get_contents("http://api.alarabiya.net/sections/2/");
?>

私の質問は、file_get_contents を使用するときに要求サイズの制限があるかどうか、または PHP のメモリがそれを処理できないかどうか、または正確に何が問題なのかということです。

シェルでこれを CURL すると、php と同じ o/p (トリミングされた出力) が得られました。

4

1 に答える 1

5

私はついにこれに対する解決策を見つけました:

$url = "http://api.alarabiya.net/sections/2/";

$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true );
// This is what solved the issue (Accepting gzip encoding)
curl_setopt($ch, CURLOPT_ENCODING, "gzip,deflate");     
$response = curl_exec($ch);
curl_close($ch);
echo $response;
于 2013-03-02T02:31:56.977 に答える