通过php脚本从URL收到的响应比我在浏览器中打开它时的响应要小

时间:2013-03-02 02:06:33

标签: php file-get-contents

我正在尝试通过脚本获取此网址:http://api.alarabiya.net/sections/2/

但收到的JSON响应比我在浏览器中直接打开时要小得多,

请注意我通过CURL尝试了此网址,并设置了浏览器的相同USER-AGENT以及浏览器中使用的所有请求标头,我仍然得到较小的响应。

这是一个仅使用file_get_contents

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

我的问题是,如果使用file_get_contents时是否存在请求大小限制,或者PHP的内存无法处理它或者问题究竟是什么?

当我在shell中使用CURLed时,它给了我与php(修剪后的输出)相同的o / p。

1 个答案:

答案 0 :(得分:2)

我终于找到了解决方案:

$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;