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

PHP调用CoinMarketCap API如何通过symbol或slug筛选指定加密货币数据

按symbol筛选的实现方法

方案1:在API请求阶段直接筛选(优先推荐)

CoinMarketCap的/v1/cryptocurrency/listings/latest接口原生支持symbol查询参数,你直接把CMS中存储的$variable作为参数传入请求URL即可,无需拉取全量列表再过滤,接口会直接返回对应币种的数据,性能损耗最低。

修改后完整代码如下:

// 你CMS中存储的目标币种变量,示例值如'BTC'、'ETH'
$target_symbol = $variable;

$url = "https://pro-api.coinmarketcap.com/v1/cryptocurrency/listings/latest";
// 拼接筛选参数,用urlencode处理避免特殊字符异常
$request = $url . "?symbol=" . urlencode($target_symbol);

$headers = [
  'Accepts: application/json',
  'X-CMC_PRO_API_KEY: ___YOUR_API_KEY_HERE___'
];

$curl = curl_init();
curl_setopt_array($curl, array(
  CURLOPT_URL => $request,
  CURLOPT_HTTPHEADER => $headers,
  CURLOPT_RETURNTRANSFER => 1
));

$response = curl_exec($curl);
$json = json_decode($response);
curl_close($curl);

// 筛选后返回的data数组仅包含目标币种,直接取第一个元素即可
if (!empty($json->data)) {
  $price = $json->data[0]->quote->USD->price;
  echo $price;
} else {
  echo "未查询到对应币种数据";
}

如果需要同时筛选多个币种,直接把多个symbol用英文逗号拼接即可,例如symbol=BTC,ETH,SOL。

方案2:拉取全量列表后本地筛选(适合多币种批量查询场景)

如果你需要一次性拉取全量币种列表再多次匹配不同symbol,可以直接遍历返回的data数组做匹配:

// 原有API请求逻辑不变,拿到$json后执行以下逻辑
$target_symbol = $variable;
$price = null;
foreach ($json->data as $item) {
  if ($item->symbol == $target_symbol) {
    $price = $item->quote->USD->price;
    break;
  }
}

if ($price) {
  echo $price;
} else {
  echo "未查询到对应币种数据";
}

注意事项

  • 传入的symbol建议用大写格式,和CoinMarketCap的标准币种符号保持一致避免匹配失败
  • 如果你需要按slug筛选,把请求参数的symbol换成slug传入对应值即可,逻辑完全一致

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.27 04:06:01