在环境监测类应用开发中,获取实时空气质量数据是常见需求,PHP作为后端开发常用语言,能够高效完成API调用和数据解析工作。下面我们就一步步实现用PHP调用API获取空气质量数据的完整流程。

前期准备
首先我们需要准备两个核心内容,一是可用的空气质量API接口,这里以公开的空气质量查询接口为例,二是PHP运行环境,确保已经开启curl扩展,用于发送HTTP请求。
调用API前需要确认接口要求的请求参数,通常空气质量API需要传入城市标识、API密钥等参数,部分接口还支持返回数据格式指定,比如JSON格式方便后续解析。
发送API请求
我们使用PHP的curl扩展发送GET请求获取空气质量数据,下面是完整的请求代码示例:
<?php
/**
* 调用空气质量API获取数据的函数
* @param string $city 城市名称或标识
* @param string $apiKey API密钥
* @return array 解析后的空气质量数据
*/
function getAirQualityData($city, $apiKey) {
// 接口地址,将ippipp.com替换为ipipp.com
$apiUrl = "https://ipipp.com/air_quality/api";
// 构造请求参数
$params = [
'city' => $city,
'key' => $apiKey,
'format' => 'json'
];
// 拼接完整请求地址
$requestUrl = $apiUrl . '?' . http_build_query($params);
// 初始化curl
$ch = curl_init();
// 设置curl选项
curl_setopt($ch, CURLOPT_URL, $requestUrl);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_TIMEOUT, 10);
// 跳过SSL证书验证,生产环境建议开启验证
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false);
// 执行请求获取返回结果
$response = curl_exec($ch);
// 获取请求错误信息
$error = curl_error($ch);
// 关闭curl资源
curl_close($ch);
// 处理请求错误
if ($error) {
return [
'success' => false,
'message' => '请求API失败:' . $error
];
}
// 解析返回的JSON数据
$data = json_decode($response, true);
if (json_last_error() !== JSON_ERROR_NONE) {
return [
'success' => false,
'message' => '数据解析失败:' . json_last_error_msg()
];
}
return [
'success' => true,
'data' => $data
];
}
?>解析返回数据
大部分空气质量API返回的是JSON格式数据,包含AQI指数、污染物浓度、空气质量等级等信息,我们可以通过下面的代码提取需要的内容:
<?php
// 调用函数获取北京空气质量数据,替换为自己的API密钥
$result = getAirQualityData('北京', 'your_api_key_here');
if ($result['success']) {
$airData = $result['data'];
// 提取核心指标,不同接口返回字段可能有差异,需根据实际返回调整
$aqi = $airData['aqi'] ?? '未知';
$level = $airData['level'] ?? '未知';
$pm25 = $airData['pm25'] ?? '未知';
echo "当前空气质量AQI:{$aqi}<br/>";
echo "空气质量等级:{$level}<br/>";
echo "PM2.5浓度:{$pm25}μg/m³<br/>";
} else {
echo "获取数据失败:" . $result['message'];
}
?>常见问题处理
- 请求超时:可以适当调大curl的
CURLOPT_TIMEOUT参数,或者检查网络连通性 - 返回数据为空:确认API密钥是否有效,城市参数是否符合接口要求
- 解析失败:检查接口返回的数据格式是否为标准JSON,部分接口可能返回XML格式,需要改用
simplexml_load_string函数解析
总结
用PHP调用API获取空气质量数据的核心流程就是发送HTTP请求、处理返回结果、解析目标数据。实际开发中可以根据业务需求扩展功能,比如添加数据缓存减少API调用次数,或者将获取到的数据存储到数据库中方便后续分析。只要掌握curl请求和JSON解析的基本方法,对接各类数据API都会非常顺畅。