基于PHP的聚合数据天气预报api调用示例

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

基于PHP的聚合数据天气预报api调用示例本代码示例是基于PHP的聚合数据天气预报api服务请求的代码样例,使用前你需要:①:通过申请一个天气预报API的appkey样例代码包含了获取支持城市列表、根据城市获取天气预报、根据IP地址请求天气预报、根据GPS坐标请求天气、城市3小时天气预报的实现。示例代码主要是解析一些常用字段,如需要完整或其他未包含的字段,可以自行参考官方的接口,进行修改。首先:引入封装好的天气调用类header('Content-type:text/html;charset=utf-8');include'class.juhe.weather.php';//引入天气请求类//接口基本信息配置$appkey='**********';//您申请的天气查询appkey$weather=newweather($appkey);一、获取支持的城市列表由于支持的城市列表基本不会这么变化,大家可以获取到列表后内置到自己的应用中,就不用每次都去请求API。$citysResult=$weather-getCitys();if($citysResult['error_code']==0){//以下可根据实际业务需求,自行改写//////////////////////////////////////////////////////////////////////$citys=$citysResult['result'];foreach($citysas$ckey=$c){echoID:.$c['id'].,省份:.$c['province'].,城市:.$c['city'].,区域:.$c['district'].br;}}else{//以下可根据实际业务需求,自行改写//////////////////////////////////////////////////////////////////////echo$citysResult['error_code'].:.$citysResult['reason'];}二、根据城市/ID获取天气预报通过城市的名称或城市的ID来获取天气预报,城市id就是获取城市支持列表中返回的字段ID$cityWeatherResult=$weather-getWeather('苏州');if($cityWeatherResult['error_code']==0){//以下可根据实际业务需求,自行改写//////////////////////////////////////////////////////////////////////$data=$cityWeatherResult['result'];echo=======当前天气实况=======br;echo温度:.$data['sk']['temp'].;echo风向:.$data['sk']['wind_direction'].(.$data['sk']['wind_strength'].);echo湿度:.$data['sk']['humidity'].;echobrbr;echo=======未来几天天气预报=======br;foreach($data['future']as$wkey=$f){echo日期:.$f['date']..$f['week']..$f['weather']..$f['temperature'].br;}echobrbr;echo=======相关天气指数=======br;echo穿衣指数:.$data['today']['dressing_index'].,.$data['today']['dressing_advice'].br;echo紫外线强度:.$data['today']['uv_index'].br;echo舒适指数:.$data['today']['comfort_index'].br;echo洗车指数:.$data['today']['wash_index'];echobrbr;}else{echo$cityWeatherResult['error_code'].:.$cityWeatherResult['reason'];}三、根据用户的IP地址请求对应的天气预报通过用户的IP地址获取用户所在地的天气预报,由于IP地址解析可能会有误差,所以有时定位到的城市不一定是用户实际的所在地。$ipWeatherResult=$weather-getWeatherByIP('58.215.154.128');if($ipWeatherResult['error_code']==0){//以下可根据实际业务需求,自行改写//////////////////////////////////////////////////////////////////////$data=$ipWeatherResult['result'];echo=======当前城市=======br;echo$data['today']['city'];echobrbr;echo=======当前天气实况=======br;echo温度:.$data['sk']['temp'].;echo风向:.$data['sk']['wind_direction'].(.$data['sk']['wind_strength'].);echo湿度:.$data['sk']['humidity'].;echobrbr;echo=======未来几天天气预报=======br;foreach($data['future']as$wkey=$f){echo日期:.$f['date']..$f['week']..$f['weather']..$f['temperature'].br;}echobrbr;echo=======相关天气指数=======br;echo穿衣指数:.$data['today']['dressing_index'].,.$data['today']['dressing_advice'].br;echo紫外线强度:.$data['today']['uv_index'].br;echo舒适指数:.$data['today']['comfort_index'].br;echo洗车指数:.$data['today']['wash_index'];echobrbr;}else{echo$ipWeatherResult['error_code'].:.$ipWeatherResult['reason'];}四、根据GPS坐标来获取对应地区的天气无论通过二、三、四获取的天气预报,因为聚合格式都是统一的,所以解析的流程是一致的,所以没有额外的操作,只是传参上有点的差异。$geoWeatherResult=$weather-getWeatherByGeo(116.401394,39.916042);if($geoWeatherResult['error_code']==0){//以下可根据实际业务需求,自行改写//////////////////////////////////////////////////////////////////////$data=$geoWeatherResult['result'];echo=======当前城市=======br;echo$data['today']['city'];echobrbr;echo=======当前天气实况=======br;echo温度:.$data['sk']['temp'].;echo风向:.$data['sk']['wind_direction'].(.$data['sk']['wind_strength'].);echo湿度:.$data['sk']['humidity'].;echobrbr;echo=======未来几天天气预报=======br;foreach($data['future']as$wkey=$f){echo日期:.$f['date']..$f['week']..$f['weather']..$f['temperature'].br;}echobrbr;echo=======相关天气指数=======br;echo穿衣指数:.$data['today']['dressing_index'].,.$data['today']['dressing_advice'].br;echo紫外线强度:.$data['today']['uv_index'].br;echo舒适指数:.$data['today']['comfort_index'].br;echo洗车指数:.$data['today']['wash_index'];echobrbr;}else{echo$geoWeatherResult['error_code'].:.$geoWeatherResult['reason'];}五、获取城市三小时预报就是城市每3小时的天气情况$forecastResult=$weather-getForecast(苏州);if($forecastResult['error_code']==0){//以下可根据实际业务需求,自行改写//////////////////////////////////////////////////////////////////////$data=$forecastResult['result'];foreach($dataas$key=$d){echo日期:.$d['date'].(.$d['sh'].点-.$d['eh'].点).$d['weather']..$d['temp1'].~.$d[temp2].br;}}else{//以下可根据实际业务需求,自行改写//////////////////////////////////////////////////////////////////////echo$forecastResult['error_code'].:.$forecastResult['reason'];}通过上面的示例代码,大家应该对如果调用聚合数据天气预报API有了一个大体的了解。最后放上class.juhe.weather.php完整代码:!--?php//+----------------------------------------------------------------------//|JuhePHP[NOZUONODIE]//+----------------------------------------------------------------------//|Copyright(c)2010-2015|Author:Juhedatainfo@juhe.cn--//+----------------------------------------------------------------------//----------------------------------//聚合数据天气预报接口请求类//----------------------------------classweather{private$appkey=false;//申请的聚合天气预报APPKEYpr

1 / 8
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功