我正在尝试通过脚本获取此网址: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。
答案 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;