使用Json从结果中获取数据:next_page

时间:2013-05-06 18:47:22

标签: php html json zendesk

我目前遇到一个限制问题,即每个Curl请求获得1000个结果,这里的问题是我需要获得大约7,000个结果。

从curl检索的数据采用Json格式,数据底部有一个链接,用于检索下一页数据,每页包含1000个结果。

是否可以执行数组或某种循环,我从每个页面获取所有数据,直到最后一页底部不再有next_page URL。

我尝试使用的代码示例是:

function curlWrap($url, $json, $action)
{
$ch = curl_init();
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
curl_setopt($ch, CURLOPT_MAXREDIRS, 10 );
curl_setopt($ch, CURLOPT_URL, ZDURL.$url);
curl_setopt($ch, CURLOPT_USERPWD, ZDUSER."/token:".ZDAPIKEY);
switch($action){
case "POST":
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "POST");
curl_setopt($ch, CURLOPT_POSTFIELDS, $json);
break;
case "GET":
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "GET");
break;
case "PUT":
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "PUT");
curl_setopt($ch, CURLOPT_POSTFIELDS, $json);
default:
break;
}
curl_setopt($ch, CURLOPT_HTTPHEADER, array('Content-type: application/json'));
curl_setopt($ch, CURLOPT_USERAGENT, "MozillaXYZ/1.0");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_TIMEOUT, 20);
$output = curl_exec($ch);
curl_close($ch);
$decoded = json_decode($output);
return $decoded;
}

我只是想找到一种添加数组或循环的方法,以便继续从next_page网址获取结果/数据,直到页面底部没有更多的next_page网址。

关于json布局的更多细节:

json键是“next_page”& “end_time”:

"end_time": ("unix-timestamp") 
"next_page": "https:url/"unix-timestamp" 

在每个页面之后都有一个新的时间戳,它将在“end_time”键中列出。

然后,这将列在“next_page”网址的末尾。这两个键都是json代码中的最后两行,json文件中共有大约20'000行数据。

如果需要更多细节,请提前告知我们。

1 个答案:

答案 0 :(得分:0)

不知道json布局。网址有多深,密钥是什么等等

等等。

function getNext($jsonIn){
    if (!empty($jsonIn['url'])) {
        curlWrap($jsonIn['url'], $json, $action);
    }  
}

//-------------

getNext($decoded);