如何在PHP中访问足球API返回的JSON数组并提取指定数据
PHP cURL获取Betfair英超赛事并提取指定信息
修改思路
- 保留原cURL请求逻辑,确保正常获取RapidAPI返回的JSON数据
- 将原始JSON响应解析为PHP关联数组,便于遍历提取目标字段
- 遍历赛事数组,提取赛事名称和开赛时间(需根据API实际返回结构调整字段名)
- 按清晰格式输出整理后的赛事信息
修改后的代码
<?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
相关产品推荐
相关产品推荐

