php进行多个api调用并合并json结果
我已经找到了一些关于合并JSON数据的方法的主题,但与我正在尝试做的事情完全不同。我从中请求数据的API的上限是每次从其数据库中获取1000个结果。如果我从今天开始搜索到一年后,我可以得到1000个结果。但我并没有得到所有的结果。与他们的技术人员交谈时,他们建议我定制多个API请求,以连续每30天提取1000个API请求,然后合并它们。我不知道该怎么做 请求:php进行多个api调用并合并json结果,php,json,database,api,Php,Json,Database,Api,我已经找到了一些关于合并JSON数据的方法的主题,但与我正在尝试做的事情完全不同。我从中请求数据的API的上限是每次从其数据库中获取1000个结果。如果我从今天开始搜索到一年后,我可以得到1000个结果。但我并没有得到所有的结果。与他们的技术人员交谈时,他们建议我定制多个API请求,以连续每30天提取1000个API请求,然后合并它们。我不知道该怎么做 请求: // Get date + 30 days to use in the request: $endDate = date('Y-m-d'
// Get date + 30 days to use in the request:
$endDate = date('Y-m-d',strtotime(date("Y-m-d", mktime()) . " + 30 day"));
$url = PROTOCOL . '://'. ENDPOINT . '?api_key='. API_KEY .'&api_secret='. API_SECRET;
$url .= '&aflt_token=K4RrVSQJFt51F2kyFXDZDFlE9igOtuM4';
$url .= '&format=json';
$url .= '&events=T';
$url .= '&race_headings=F';
$url .= '&race_links=F';
$url .= '&include_waiver=F';
$url .= '&page=1';
$url .= '&results_per_page=1000';
$url .= '&start_date=tomorrow';
$url .= '&end_date='.$endDate;
$url .= '&only_partner_races=F';
$url .= '&only_races_with_results=F';
$url .= '&distance_units=K';
$json = file_get_contents($url);
$json_output = json_decode($json);
他们建议我在连续30天内打类似的电话,修改:
$url .= '&start_date=tomorrow';
$url .= '&end_date='.$endDate;
每次持续30天。所以现实地说,我可以打6个单独的电话,得到整整6个月的假期。问题是如何进行这些调用,然后合并返回的数据。它的格式完全相同,并且都被放在同一个数据库中。谢谢你的洞察力
更新:我可以使用
$merged_data = array_merge(array($json_output, $json_output2, $json_output3, $json_output4, $json_output5));
但是:在我得到内存错误之前,我可以发出的请求的最大数量似乎仅限于4个30天的周期,即1000个结果:致命错误:允许的内存大小为67108864字节,已耗尽试图在第165行的/home/runraceitadmin/public_html/dev/runsignup.php中分配83字节
因此,通过这种方式,我可以从API获得的最大记录数似乎是120天。我正在寻找一个完整的日历年。页面参数如何,?参数results_per_pageAPI提供分页。因此,不需要1000个后续请求,只需迭代生成的页面列表,每个页面列表包含1000个条目?您可以在这里查看:您是否想过每次只解析json并推送到数据库?通过将它们推送到数据库而不删除旧记录,您将有效地合并它们。他们正在寻找一个1-1000作为文件阅读和确认与他们的技术。如果你想提供25个,50个,100个分页的结果,那么这就是了。但是,每个请求可以提取的总数量限制为1000。