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

如何在PHP中访问足球API返回的JSON数组并提取指定数据

PHP cURL获取Betfair英超赛事并提取指定信息

修改思路

  1. 保留原cURL请求逻辑,确保正常获取RapidAPI返回的JSON数据
  2. 将原始JSON响应解析为PHP关联数组,便于遍历提取目标字段
  3. 遍历赛事数组,提取赛事名称和开赛时间(需根据API实际返回结构调整字段名)
  4. 按清晰格式输出整理后的赛事信息

修改后的代码

<?php
$curl = curl_init();

// 配置cURL参数,替换成你的RapidAPI密钥
curl_setopt_array($curl, [
  CURLOPT_URL => "https://betfair-sportsbook.p.rapidapi.com/v1/events?competitionIds=223",
  CURLOPT_RETURNTRANSFER => true,
  CURLOPT_FOLLOWLOCATION => true,
  CURLOPT_ENCODING => "",
  CURLOPT_MAXREDIRS => 10,
  CURLOPT_TIMEOUT => 30,
  CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
  CURLOPT_CUSTOMREQUEST => "GET",
  CURLOPT_HTTPHEADER => [
    "X-RapidAPI-Host: betfair-sportsbook.p.rapidapi.com",
    "X-RapidAPI-Key: YOUR_API_KEY"
  ],
]);

$response = curl_exec($curl);
$err = curl_error($curl);

curl_close($curl);

if ($err) {
  echo "cURL Error #:" . $err;
} else {
  // 解析JSON为关联数组
  $data = json_decode($response, true);
  
  // 校验赛事数据是否存在
  if (isset($data['events']) && is_array($data['events'])) {
    echo "### 英超赛事列表\n";
    foreach ($data['events'] as $event) {
      // 提取字段(字段名需匹配API实际返回结构,若不符请自行调整)
      $eventName = $event['eventName'] ?? '未知赛事';
      $startTime = $event['openDate'] ?? '未知开赛时间';
      
      // 按指定格式输出
      echo "- **{$eventName}**:{$startTime}\n";
    }
  } else {
    echo "未获取到有效赛事数据,请检查API请求参数或响应结构";
  }
}
?>

关键说明

  • 字段适配:RapidAPI返回的JSON结构可能随版本或接口变化,若eventName或openDate字段不存在,需打印原始$response查看结构后修改对应字段名
  • 空值处理:使用??运算符处理字段缺失的情况,避免PHP报错
  • 输出格式:采用Markdown二级标题+无序列表形式,清晰展示每一项赛事信息

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.02 16:20:22