2

我正在尝试通过脚本获取此网址: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 的内存是否无法处理,或者究竟是什么问题?

当我在 shell 中卷曲它时,它给了我与 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 回答