我正在尝试从JSON API结果中插入所有结果,但是他们已经限制了每页最多200个结果,尽管它们提供了下一个要访问的url以获得接下来的200个结果,这里是一个示例API提供的结果。
{
"count": 200,
"total": 31108,
"nextUrl": "https://**/api/v1/***/orders?secure_auth_key=****&offset=200",
"orders": [
{
"number": 40026,
"paymentStatus": "ACCEPTED",
etc....
}
],
}
这是我目前的代码,可以获取这200个结果并将它们存储在mySQL中
$url = "https://****/api/v1/***/orders?secure_auth_key=*****";
$json = file_get_contents($url, 0, null, null);
$result = json_decode($json, true)
foreach($result['orders'] as $order) {
mysql_query("INSERT INTO blah blah");
}
我如何创建它以便它自动从下一页获取数据,例如:offset = 200并将所有数据添加到数据库,就像我在第一个结果中所做的那样。
答案 0 :(得分:0)
假设如果没有更多结果,他们不提供下一个200的URL,为什么不将它用作支票。
例如。保存简单后如果检查最后一个结果是否有nexturl?
if(isset($result['nextUrl'])){
$url = $result['nextUrl'];
$json = file_get_contents($url, 0, null, null);
$result = json_decode($json, true)
foreach($result['orders'] as $order) {
mysql_query("INSERT INTO blah blah");
}
}
理想情况下,将其移动到您可以在需要的地方不断调用的功能......