这是我的API URL:
https://api.coingecko.com/api/v3/coins/markets?vs_currency=usd&per_page=250&page=1
我们可以有page=2和page=3等等…我想从第1页获取数据,直到第6页,然后把它们全部放入1 json文件文件。json。我使用下面的代码:
for ($j=1;$j<=6;$j++){
$coin_market_cap_url = 'https://api.coingecko.com/api/v3/coins/markets?vs_currency=usd&per_page=250&page='.$j;
$coin_market_cap_result = json_decode(getCurlAgent($coin_market_cap_url, true), true);
for ($i=0;$i<250;$i++){
$coins[$i]['name']=$coin_market_cap_result[$i]['name'];
$coins[$i]['symbol']=$coin_market_cap_result[$i]['symbol'];
}
}
$coins = json_encode($coins);
if ($coins){
file_put_contents("file.json", $coins);
}
我怎样才能解决这个问题?
感谢问题是您正在替换for循环中的前250个条目
<?php
$coins = [];
for ($j = 1; $j <= 6; $j++) {
$coin_market_cap_url = "https://api.coingecko.com/api/v3/coins/markets?vs_currency=usd&per_page=250&page={$j}";
$coin_market_cap_result = json_decode(file_get_contents($coin_market_cap_url), true);
foreach ($coin_market_cap_result as $coin) {
$coins[] = [
'name' => $coin['name'],
'symbol' => $coin['symbol'],
];
}
}
$coins = json_encode($coins);
if ($coins) {
file_put_contents("file.json", $coins);
}