如何使用PHP调用API接口实现天气查询功能

 我来答
huanglenzhi
2017-11-18 · 知道合伙人数码行家
huanglenzhi
知道合伙人数码行家
采纳数:117538 获赞数:517184
长期从事计算机组装,维护,网络组建及管理。对计算机硬件、操作系统安装、典型网络设备具有详细认知。

向TA提问 私信TA
展开全部

最近在做微信公众平台测试时,想在里面子菜单上添加查询未来几天(包括今天)天气的功能,就查找了下好用的天气预报查询接口API,使用比较多的有:国家气象局天气接口、新浪天气预报接口、百度天气预报接口、google天气接口、Yahoo天气接口等等,我使用的是百度提供的免费天气查询接口API,下面与大家分享下...

1、查询方式:

百度提供的是根据纬度和城市名查询天气情况

2、接口事例:

3、接口参数说明:


4、返回结果说明:


5、

  • //城市名  

  • $city = '上海';  

  • //对json格式的字符串进行编码  

  • $arr =json_decode($str,TRUE);         

  • print_r($atr);  

  • //城市名

  •    $city = '上海';

  •  

  •    //获取json格式的数据

  •    $str =file_get_contents("http://api.map.baidu.com/telematics/v3/weather?location=".$city."&output=json&ak=5slgyqGDENN7Sy7pw29IUvrZ");


  •    //对json格式的字符串进行编码

  •    $arr =json_decode($str,TRUE);      


  •    print_r($atr);



  • 6、返回页面的是json编码后的数据:

    [plain] view plain copy print?

  • <meta charset="UTF-8">  

  • Array  

  • (  

  • [error] => 0  

  • [status] => success  

  • [date] => 2014-03-17  

  • [results] => Array  

  • (  

  • [0] => Array  

  • (  

  • [currentCity]=> 上海  

  • [weather_data]=> Array  

  • (  

  • [0]=> Array  

  • (  

  • [date] => 周一(今天, 实时:19℃)  

  • [dayPictureUrl] =>http://api.map.baidu.com/images/weather/day/qing.png  

  • [nightPictureUrl] =>http://api.map.baidu.com/images/weather/night/qing.png  

  • [weather] => 晴  

  • [wind] => 西南风3-4级  

  • [temperature] => 13℃  

  • )  

  • [1] => Array  

  • (  

  • [date]=> 周二  

  • [dayPictureUrl] =>http://api.map.baidu.com/images/weather/day/duoyun.png  

  • [nightPictureUrl] => http://api.map.baidu.com/images/weather/night/yin.png  

  • [weather]=> 多云转阴  

  • [wind]=> 东北风3-4级  

  • [temperature] => 24 ~ 9℃  

  • )  

  • [2] => Array  

  • (  

  • [date]=> 周三  

  • [dayPictureUrl] =>http://api.map.baidu.com/images/weather/day/zhongyu.png  

  • [nightPictureUrl] => http://api.map.baidu.com/images/weather/night/xiaoyu.png  

  • [weather]=> 中雨转小雨  

  • [wind]=> 东北风3-4级  

  • [temperature] => 15 ~ 8℃  

  • )  

  • [3] => Array  

  • (  

  • [date]=> 周四  

  • [dayPictureUrl] =>http://api.map.baidu.com/images/weather/day/duoyun.png  

  • [nightPictureUrl] =>http://api.map.baidu.com/images/weather/night/qing.png  

  • [weather]=> 多云转晴  

  • [wind]=> 北风3-4级  

  • [temperature] => 14 ~ 6℃  

  • )  

  • )  

  • )  

  • )  

  • )  

  • <meta charset="UTF-8">

  • Array

  • (

  •    [error] => 0

  •    [status] => success

  •    [date] => 2014-03-17

  •    [results] => Array

  •        (

  •            [0] => Array

  •                (

  •                    [currentCity]=> 上海

  •                    [weather_data]=> Array

  •                        (

  •                            [0]=> Array

  •                                (

  •                                   [date] => 周一(今天, 实时:19℃)

  •                                   [dayPictureUrl] =>http://api.map.baidu.com/images/weather/day/qing.png

  •                                   [nightPictureUrl] =>http://api.map.baidu.com/images/weather/night/qing.png

  •                                    [weather] => 晴

  •                                   [wind] => 西南风3-4级

  •                                   [temperature] => 13℃

  •                                )


  •                            [1] => Array

  •                                (

  •                                    [date]=> 周二

  •                                   [dayPictureUrl] =>http://api.map.baidu.com/images/weather/day/duoyun.png

  •                                   [nightPictureUrl] => http://api.map.baidu.com/images/weather/night/yin.png

  •                                    [weather]=> 多云转阴

  •                                    [wind]=> 东北风3-4级

  •                                   [temperature] => 24 ~ 9℃

  •                                )


  •                            [2] => Array

  •                                (

  •                                    [date]=> 周三

  •                                   [dayPictureUrl] =>http://api.map.baidu.com/images/weather/day/zhongyu.png

  •                                   [nightPictureUrl] => http://api.map.baidu.com/images/weather/night/xiaoyu.png

  •                                    [weather]=> 中雨转小雨

  •                                    [wind]=> 东北风3-4级

  •                                   [temperature] => 15 ~ 8℃

  •                                )


  •                            [3] => Array

  •                                (

  •                                    [date]=> 周四

  •                                   [dayPictureUrl] =>http://api.map.baidu.com/images/weather/day/duoyun.png

  •                                    [nightPictureUrl] =>http://api.map.baidu.com/images/weather/night/qing.png

  •                                    [weather]=> 多云转晴

  •                                    [wind]=> 北风3-4级

  •                                   [temperature] => 14 ~ 6℃

  •                                )


  •                        )


  •                )


  •        )


  • )

  • 7、PHP中自带了处理json格式字符串的内置函数,下面做一个事例,并给出完整代码:

    [php] view plain copy print?

  • <metacharset="UTF-8">  

  • <?php  

  • //城市名  

  • $city = '上海';  

  • //获取json格式的数据  

  • $str = file_get_contents("http://api.map.baidu.com/telematics/v3/weather?location=".$city."&output=json&ak=5slgyqGDENN7Sy7pw29IUvrZ");  

  • //对json格式的字符串进行编码  

  • $arr = json_decode($str,TRUE);         

  • echo "城市:".$arr['results'][0]['currentCity']." 日期:".$arr['date']."<br /><br />";  

  • foreach($arr['results'][0]['weather_data']as $val)  

  • {  

  • echo $val['date']."<br/>";  

  • echo "天气:{$val['weather']}<br/>";  

  • echo "风向:{$val['wind']}<br/>";  

  • echo "温度:{$val['temperature']}<br/><br />";  

  • }  

  • ?>  

  • <metacharset="UTF-8">

  • <?php

  •    //城市名

  •    $city = '上海';

  •  

  •    //获取json格式的数据

  •    $str = file_get_contents("http://api.map.baidu.com/telematics/v3/weather?location=".$city."&output=json&ak=5slgyqGDENN7Sy7pw29IUvrZ");


  •    //对json格式的字符串进行编码

  •    $arr = json_decode($str,TRUE);      


  •    echo "城市:".$arr['results'][0]['currentCity']." 日期:".$arr['date']."<br /><br />";


  •    foreach($arr['results'][0]['weather_data']as $val)

  •    {

  •        echo $val['date']."<br/>";

  •        echo "天气:{$val['weather']}<br/>";

  •        echo "风向:{$val['wind']}<br/>";

  •        echo "温度:{$val['temperature']}<br/><br />";

  •    }

  • ?>



  • 8、返回的内容如下:


推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式