You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

PHP调用单页100条限制的分页API如何获取全部分页记录

全量拉取分页记录实现方案

首先明确:这类采用page_number+page_size设计的标准分页API,不支持传入页码范围一次性获取全量数据,不要尝试传范围值、特殊值(比如all、0、1-100这类),这类传参基本都会被接口判定为非法参数返回错误。

因为接口不返回总记录数,正确的实现思路是逐页循环请求,直到拉取到空结果页终止,即可拿到全量数据,具体步骤如下:

  • 初始化当前请求页码为1,初始化空数组存储所有拉取到的记录
  • 开启循环:构造当前页码对应的请求URL,通过curl发起请求
  • 解析接口返回结果,提取当前页的记录列表
    • 如果当前页记录为空,说明已经遍历完所有分页,直接终止循环
    • 如果当前页有记录,将记录合并到总结果数组,页码自增1,发起下一页请求
  • 循环结束后,存储的数组就是对应账号下的所有产品记录

PHP+Curl实现代码示例

<?php
// 基础请求地址,page_number留空后续循环拼接
$baseUrl = "https://api.shop.com/v1/products?page_size=100&page_number=";
// 存储全量结果的数组
$allProducts = [];
// 起始页码
$currentPage = 1;

// 初始化curl句柄,公共配置只需要设置一次
$ch = curl_init();
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false);
// 按需补全接口要求的鉴权、请求头配置
// curl_setopt($ch, CURLOPT_HTTPHEADER, [
//     "Authorization: Bearer 你的接口访问Token",
//     "Accept: application/json"
// ]);

while (true) {
    // 拼接当前页的请求地址
    $requestUrl = $baseUrl . $currentPage;
    curl_setopt($ch, CURLOPT_URL, $requestUrl);

    $response = curl_exec($ch);
    // 处理curl请求错误,可按需加重试逻辑
    if (curl_errno($ch)) {
        // 可在此处记录错误日志、抛出异常
        break;
    }

    // 解析接口返回的JSON结果
    $result = json_decode($response, true);
    // 注意:这里的键名要根据接口实际返回结构调整,常见的列表键名有data、list、products等
    $pageItems = $result['data'] ?? [];

    // 当前页无数据,说明已经到最后一页,终止循环
    if (empty($pageItems)) {
        break;
    }

    // 合并当前页数据到全量结果
    $allProducts = array_merge($allProducts, $pageItems);
    // 页码自增,准备请求下一页
    $currentPage++;

    // 可选:增加100毫秒请求间隔,避免请求频率过高触发接口限流
    usleep(100000);
}

curl_close($ch);

// 处理完成,$allProducts即为所有分页的全量产品记录
print_r($allProducts);

注意事项

  • 代码中提取分页列表的键名需要和你调用的接口实际返回结构对齐,不要直接硬套示例中的data字段
  • 如果接口返回规则是「最后一页的记录数小于page_size」,可以加判断:当当前页记录数<100时直接终止循环,不需要再请求下一个空页,拉取效率更高
  • 建议加上请求失败重试、异常捕获逻辑,避免因为网络波动导致拉取中断
  • 严格遵守接口的限流规则,不要设置过高的并发请求或者过短的请求间隔,避免被接口封禁访问权限

内容的提问来源于stack exchange,提问作者user9361135

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.29 02:45:35