尝试通过API请求获取所有项目,有 offset 和 limit 个参数。
我在json响应中还有 count 个项目,该项目显示了该请求在该日期的总项目数。但是我无法在算法中使用它。
一个API请求限制为1000个项目。
我只是想不出将所有项目都放在一个循环中的算法,它应该尽可能快并且不占用大量资源。
$api_key = 'XXXXXXXXXXXXXXXXX';
$api_secret = 'XXXXXXXXXXXXXXXXX';
$dateStart = 'XXXX-XX-XX';
$dateStop = 'XXXX-XX-XX';
$offset = 0;
$limit = 1000;
do{
$url = 'https://XXXXXXX/sessions?dateStart='. $dateStart .'&dateStop='. $dateStop
.'&limit='. $limit .'&offset='. $offset
. &api_key='. $api_key . '&api_secret='. $api_secret;
$source = file_get_contents($url);
$obj = json_decode($source, true);
for ($i = 0; $i < count($obj['data']); $i++)
{
echo $i . " - ";
echo $obj['data'][$i]['User'] . '<br>';
}
$offset += $limit;
} while(count($obj['data']) >= $limit);
可以,但是少于1000个项目时。