我有以下功能:
function getJsonStuff($page_id, $token = "")
{
$json = json_decode(file_get_contents("https://www.example.com/id=" . $page_id . "&pageToken=" . $token), true);
if (isset($json["token"]) && !empty($json["token"]))
{
getJsonStuff($playlist_id, $json["token"]);
}
else
{
return $json;
}
}
我正在检索它的页面上给出的JSON只返回20个结果,但为接下来的20个结果提供了一个分页标记。
递归函数用于遍历所有JSON结果,直到没有给出下一个页面标记。
如何将每个页面的JSON结果添加到单个变量中,以便我有一个包含所有结果的变量?
答案 0 :(得分:0)
您可以使用while循环而不是递归来解决此问题:
function getJsonStuff($page_id) {
$url = "https://www.example.com/id=" . $page_id . "&pageToken=";
$results = array();
$token = "";
while(true) {
$json = json_decode(file_get_contents($url . $token), true);
if (!isset($json["token"]) || empty($json["token"])) {
break;
}
$token = $json["token"];
$results[] = $json;
}
return $results;
}