2013-03-02 57 views
1

打开我试图获取可以通过一个脚本此网址小:http://api.alarabiya.net/sections/2/响应比,当我在浏览器

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

请注意,我试图通过CURL此URL,并设置浏览器的浏览器中使用的相同用户和代理请求头,我仍然得到较小的响应。

这里的使用〔实施例只是的file_get_contents

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

我的问题是使用的file_get_contents何时或是否有一个请求大小限制,如果PHP的内存不能办理或者究竟是什么问题?

当我蜷缩在这个外壳它给了我同样的O/P为PHP(修剪输出)。

+0

我注意到每次我刷新页面的响应是不同的,但从来没有得到完整的JSON字符串...是正确的? – Cito 2013-03-02 02:23:59

+0

是的,这就是我得到的 – Shehabix 2013-03-02 02:28:10

回答

1

我终于找到了一个解决方案:

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

你会如何解码?这样做之后我使用了json解码,而且我的网址仍然比我的网址显示的结果要少。例如,url显示了9个结果对象,并且在使用json解码函数之后,我只能得到3个结果对象。我在这里错过了吗?我的最新问题与您使用的设置相同,包括病房后面的解码。 – Carlitos 2017-07-21 04:20:56