0

我正在尝试插入来自 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 并将所有数据添加到数据库中,就像我在第一个结果中所做的那样。

4

1 回答 1

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");


}
}

理想情况下,将其移动到一个您可以在需要的地方不断调用的函数中......

于 2013-01-25T21:36:51.753 回答