如何从PHP中的指定网址获取大数据(json)

问题描述:

我有一个php应用程序,我需要它从一个url获取一个大的json响应。随着卷曲,当我从终端使用它时,一切都如预期一样。但PHP卷曲并没有得到整个文件。它看起来像被截断了。如何从PHP中的指定网址获取大数据(json)

curl命令我从终端使用方法是:

curl -v -H 'Accept-Encoding:gzip,deflate,sdch' resultsURL --compressed 

其中resultsURL是我想从JSON的URL。

这通常会让我回到约10,000kb(9-10mb),但是从PHP curl我得到的最多400-500kb。

我怎样才能得到整个文件?

(EXEC是不是一种选择),你从浏览器或`cli`运行PHP脚本

+0

? – maximkou

+0

我使用Firefox,是否有区别? –

+0

好的,如果你从浏览器调用脚本,那么@AZinkey答案必须帮助你。如果不是秘密,下载这个json文件的目的是什么? – maximkou

set_time_limit(0); 
    $url = 'http://www.example.com/a-large-file.json'; 
    $path = '/path/to/a-large-file.json'; 
    $fp = fopen($path, 'w+'); 

    $ch = curl_init($url); 
    curl_setopt($ch, CURLOPT_FILE, $fp); 

    $data = curl_exec($ch); 

    curl_close($ch); 
    fclose($fp); 
+0

这将输出一个空的json文件。当我使用我在curl中提供压缩的头文件时,它会向文件输出我之前得到的内容。 –

+0

你能分享你的json文件链接吗? – AZinkey

+0

是的,这里是:http://api.travelpayouts.com/v1/flight_search_results?uuid=dcbc9d20-c3be-47f4-965f-d72961b76bb1 –