如何解决PHP Curl在限制和偏移量的分页上执行While循环
我是这里的新手,想问一下PHP循环
我想从myendpoint获取“ itemid”并将其存储到$result_array
Myendpoint具有分页
第一页,offset=0
,第二页,offset=100
,等等
第一页上的最大id为100,第二页上的最大为100,依此类推
最后一页未知,因此我将count($result_array) % 100 == 0
设置为while条件
逻辑是,如果第一页包含100个itemid,执行第二页,第二页包含100个itemid,执行第三页,等等
仅当首页包含
如何解决这个问题?
谢谢。
这是我的脚本:
$limit = 100;
$offset = 0;
$result_array = array();
$url = 'https://myendpoint/?limit=' . $limit . '&offset=' . $offset;
do {
$ch = curl_init($url);
curl_setopt($ch,CURLOPT_RETURNTRANSFER,true);
curl_setopt($ch,CURLOPT_SSL_VERIFYPEER,false);
curl_setopt($ch,CURLOPT_SSL_VERIFYHOST,false);
$response = curl_exec($ch);
$data = json_decode($response,true);
curl_close($ch);
$itemIds = array();
foreach ($data["items"] as $row) {
$itemIds[] = $row["itemid"];
}
$result_array = array_merge($result_array,$itemIds);
$offset = $offset + $limit;
} while (count($result_array) % 100 == 0);
print_r($result_array);
解决方法
一个非常简单的错误:您在循环外构建该URL时,一遍又一遍地使用相同的URL。将其移入循环,使其包含您正在该循环中计算的$offset
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。