如何用PHP调用API获取空气质量数据_PHP空气质量API调用与环境数据解析教程

爱谁谁
发布: 2025-11-19 10:40:02
原创
726人浏览过
首先获取API密钥并构造请求URL,然后使用PHP的cURL发送GET请求获取空气质量数据,接着通过json_decode解析JSON响应提取AQI、PM2.5、PM10等指标,最后进行错误处理与数据展示。

如何用php调用api获取空气质量数据_php空气质量api调用与环境数据解析教程

调用空气质量API获取环境数据在城市健康监测、出行建议等场景中非常实用。PHP作为服务端常用语言,非常适合用来定时抓取和处理这类公开API数据。本文教你如何使用PHP发起HTTP请求,调用空气质量API,并解析返回的JSON数据。

选择合适的空气质量API

目前多个平台提供免费或付费的空气质量数据接口,常见选择包括:

  • AQICN(http://aqicn.org):覆盖全球城市,需申请Token
  • OpenWeatherMap:支持空气质量扩展,注册后获取API Key
  • 中国生态环境部公开接口:部分城市实时发布,适合国内项目

以 OpenWeatherMap 为例,其空气质量API端点为:
http://api.openweathermap.org/data/2.5/air_pollution?lat={lat}&lon={lon}&appid={API_KEY}

使用PHP发送GET请求获取数据

PHP可以通过 cURL 或 file_get_contents 发起HTTP请求。推荐使用cURL,控制更灵活。

示例代码:

立即学习PHP免费学习笔记(深入)”;

$lat = 39.9042; // 北京纬度
$lon = 116.4074; // 北京经度
$apiKey = 'your_api_key_here';

$url = "http://api.openweathermap.org/data/2.5/air_pollution?lat={$lat}&lon={$lon}&appid={$apiKey}";

$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_TIMEOUT, 10);
curl_setopt($ch, CURLOPT_USERAGENT, 'AirQuality App v1.0');

$response = curl_exec($ch);

if (curl_error($ch)) {
    die('请求失败: ' . curl_error($ch));
}

curl_close($ch);
登录后复制

解析JSON响应并提取关键指标

API返回的是JSON格式数据,包含PM2.5、PM10、NO2、SO2等污染物浓度及AQI(空气质量指数)。

SEEK.ai
SEEK.ai

AI驱动的智能数据解决方案,询问您的任何数据并立即获得答案

SEEK.ai 100
查看详情 SEEK.ai

使用 json_decode() 将响应转为PHP数组:

$data = json_decode($response, true);

if (isset($data['list']) && count($data['list']) > 0) {
    $air = $data['list'][0];
    
    echo "AQI: " . $air['main']['aqi'] . "\n";
    echo "PM2.5: " . $air['components']['pm2_5'] . " µg/m³\n";
    echo "PM10: " . $air['components']['pm10'] . " µg/m³\n";
    echo "臭氧(O3): " . $air['components']['o3'] . " µg/m³\n";
    echo "一氧化碳(CO): " . $air['components']['co'] . " µg/m³\n";
} else {
    echo "未获取到空气质量数据。\n";
}
登录后复制

AQI通常分为6级:
1 = 优,2 = 良,3 = 轻度污染,4 = 中度污染,5 = 重度污染,6 = 严重污染

错误处理与请求优化建议

实际应用中需考虑网络异常、配额限制等问题。

  • 检查HTTP状态码,非200时记录日志
  • 缓存结果避免频繁请求(如每30分钟一次)
  • 使用Cron定时任务自动更新数据
  • 对敏感信息(如API Key)使用配置文件隔离

可加入简单判断:

$httpCode = curl_getinfo($ch, CURLINFO_HTTP_CODE);
if ($httpCode !== 200) {
    error_log("API请求异常,状态码:{$httpCode}");
}
登录后复制

基本上就这些。只要拿到API权限,构造正确URL,用cURL获取再解析JSON,就能把实时空气质量数据接入你的PHP项目。不复杂但容易忽略细节,比如单位、时区、错误处理。

以上就是如何用PHP调用API获取空气质量数据_PHP空气质量API调用与环境数据解析教程的详细内容,更多请关注php中文网其它相关文章!

PHP速学教程(入门到精通)
PHP速学教程(入门到精通)

PHP怎么学习?PHP怎么入门?PHP在哪学?PHP怎么学才快?不用担心,这里为大家提供了PHP速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!

下载
来源:php中文网
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
最新问题
开源免费商场系统广告
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号