基于PHP的聚合数据天气预报api调用示例_第1页
基于PHP的聚合数据天气预报api调用示例_第2页
基于PHP的聚合数据天气预报api调用示例_第3页
基于PHP的聚合数据天气预报api调用示例_第4页
基于PHP的聚合数据天气预报api调用示例_第5页
免费预览已结束,剩余5页可下载查看

付费下载

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、基于PHP的聚合数据天气预报api调用示例本代码示例是基于PHP的聚合数据天气预报api服务请求的代码样例,使用前你需要:通过样例代码包含了获取支持城市列表、根据城市获取天气预报、根据IP地址请求天气预报、根据GPS坐标请求天气、城市3小时天气预报的实现。示例代码主要是解析一些常用字段,如需要完整或其他未包含的字段,可以自行参考官方的接口,进行修改。首先:引入封装好的天气调用类header('Content-type:text/html;charset=utf-8');include'class.juhe.weather.php'/引入天气请求类/接口基本信息配

2、置$appkey='*;/您申请的天气查询appkey$weather=newweather($appkey);一、获取支持的城市列表由于支持的城市列表基本不会这么变化,大家可以获取到列表后内置到自己的应用中,就不用每次都去请求API。$citysResult=$weather->getCitys();if($citysResult'error_code'=0)/以下可根据实际业务需求,自行改写/$citys=$citysResult'result'foreach($citysas$ckey=>$c)echo"ID:".$

3、c'id'.",省份:".$c'province'.",城市:".$c'city'.",区域:".$c'district'."<br>"else/以下可根据实际业务需求,自行改写/echo$citysResult'error_code'.":".$citysResult'reason'二、根据城市/ID获取天气预报通过城市的名称或城市的ID来获取天气预报,城市id就是获取城市支持列表中返回

4、的字段ID$cityWeatherResult=$weather->getWeather('苏州');if($cityWeatherResult'error_code'=0)/以下可根据实际业务需求,自行改写/$data=$cityWeatherResult'result'echo"=当前天气实况=<br>"echo"温度:".$data'sk''temp'.""echo"风向:".$data'sk'&

5、#39;wind_direction'."(".$data'sk''wind_strength'.")"echo"湿度:".$data'sk''humidity'.""echo"<br><br>"echo"=未来几天天气预报=<br>"foreach($data'future'as$wkey=>$f)echo"日期:".$f&#

6、39;date'."".$f'week'."".$f'weather'."".$f'temperature'."<br>"echo"<br><br>"echo"=相关天气指数=<br>"echo"穿衣指数:".$data'today''dressing_index'.",".$data'toda

7、y''dressing_advice'."<br>"echo"紫外线强度:".$data'today''uv_index'."<br>"echo"舒适指数:".$data'today''comfort_index'."<br>"echo"洗车指数:".$data'today''wash_index'echo"&l

8、t;br><br>"elseecho$cityWeatherResult'error_code'.":".$cityWeatherResult'reason'三、根据用户的IP地址请求对应的天气预报通过用户的IP地址获取用户所在地的天气预报,由于IP地址解析可能会有误差,所以有时定位到的城市不一定是用户实际的所在地。'28');/以下可根据实际业务需求,自行5."(".$data'sk''win"$ipWeatherRes

9、ult=$weather->getWeatherByIP(if($ipWeatherResult'error_code'=0)改写/$data=$ipWeatherResult'result'echo"=当前城市=<br>"echo$data'today''city'echo"<br><br>"echo"=当前天气实况=<br>echo"温度:".$data'sk''temp'

10、.""echo"风向:".$data'sk''wind_direction'd_strength'.")"echo"湿度:".$data'sk''humidity'.echo"<br><br>"foreach($data'future'as$wkey=>$f)echo"日期:".$f'date'."".$f'week

11、'."".$f'weather'."".$f'temperature'."<br>"echo"<br><br>"echo"=相关天气指数=<br>"echo"穿衣指数:".$data'today''dressing_index'.",".$data'today''dressing_advice'."

12、;<br>"echo"紫外线强度:".$data'today''uv_index'."<br>"echo"舒适指数:".$data'today''comfort_index'."<br>"echo"洗车指数:".$data'today''wash_index'echo"<br><br>"elseecho$ipWe

13、atherResult'error_code'.":".$ipWeatherResult'reason'四、根据GPS坐标来获取对应地区的天气无论通过二、三、四获取的天气预报,因为聚合格式都是统一的,所以解析的流程是一致的,所以没有额外的操作,只是传参上有点的差异。$geoWeatherResult=$weather->getWeatherByGeo(116.401394,39.916042);if($geoWeatherResult'error_code'=0)/以下可根据实际业务需求,自行改写/$data=$geoW

14、eatherResult'result'echo"=当前城市=<br>"echo$data'today''city'echo"<br><br>"echo"=当前天气实况=<br>echo”温度:".$data'sk''temp'.""echo"风向:".$data'sk''wind_direction'."(".$da

15、ta'sk''wind_strength'.")"echo"湿度:".$data'sk''humidity'.""echo"<br><br>"echo"=未来几天天气预报=<br>"foreach($data'future'as$wkey=>$f)echo"日期:".$f'date'."".$f'week'

16、;."".$f'weather'."".$f'temperature'."<br>"echo"<br><br>"echo"=相关天气指数=<br>"echo"穿衣指数:".$data'today''dressing_index'.",".$data'today''dressing_advice'."<

17、;br>"echo"紫外线强度:".$data'today''uv_index'."<br>"echo"舒适指数:".$data'today''comfort_index'."<br>"echo"洗车指数:".$data'today''wash_index'echo"<br><br>"elseecho$geoWeath

18、erResult'error_code'.":".$geoWeatherResult'reason'五、获取城市三小时预报就是城市每3小时的天气情况$forecastResult=$weather->getForecast("苏州");if($forecastResult'error_code'=0)/以下可根据实际业务需求,自行改写/$data=$forecastResult'result'foreach($dataas$key=>$d)echo"日期:".

19、$d'date'."(".$d'sh'."点-".$d'eh'."点)”.$d'weather'."".$d'temp1'."".$d"temp2"."<br>"else/以下可根据实际业务需求,自行改写/echo$forecastResult'error_code'.":".$forecastResult'reason'通

20、过上面的示例代码,大家应该对如果调用聚合数据天气预报API有了一个大体的了解。最后放上class.juhe.weather.php完整代码:<!-?php/+|JuhePHPNOZUONODIE/+/|Copyright(c)2010-2015Allrightsreserved./+/|Author:Juhedata<info->/+/聚合数据天气预报接口请求类/classweatherprivate$appkey=false;/申请的聚合天气预报APPKEYprivateRL$cityUrl='http:;/城市列表APIUprivate$weatherUrl=&#

21、39;/根据城市请求天气APIURLprivate$weatherIPUrl请求天气APIURL='http:;/根据IP地址private$weatherGeoUrl标获取天气APIURL='http:;/根据GPS坐private取城市天气$forecast3hUrl3小时预报APIURL='http:;/获publicfunction_construct($appkey)/*$this->appkey=$appkey;获取天气预报支持城市列表returnarray*/publicfunctiongetCitys()$params='key='

22、.$this->appkey;$content=$this->juhecurl(return$this->_returnArray($this->cityUrl,$params);$content);/*根据城市名称/ID获取详细天气预报城市名称/ID=>publicfunction$paramsArray'key''cityname''format'getWeather($city)array($this->appkey,=>$city,=>2);$params=http_build_query(

23、$content=$this->juhecurl(return$this->_returnArray($paramsArray);$this->weatherUrl,$content);$params);* 根据IP地址获取当地天气预报* paramstring$ipIP地址* returnarray* /publicfunctiongetWeatherByIP($ip)$paramsArray=array('key'=>$this->appkey,'ip'=>$ip,'format'=>2);$para

24、ms=http_build_query($paramsArray);$content=$this->juhecurl($this->weatherIPUrl,return$this->_returnArray($content);$params);* 根据GPS坐标获取当地的天气预报* paramstring$lon经度* paramstring$lat纬度* returnarray* /publicfunctiongetWeatherByGeo($lon,$lat)/*$paramsArray=array('key'=>$this->appkey

25、,'lon'=>$lon,'lat'=>$lat,'format'=>2);$params=http_build_query($content=$this->juhecurl(return$this->_returnArray($paramsArray);$this->weatherGeoUrl,$content);$params);获取城市三小时预报paramstring$cityreturnarray城市名称*/publicfunctiongetForecast($city)$paramsArray=

26、9;key'=>'cityname''format'array($this->appkey,=>$city,=>2$paramsArray);$this->forecast3hUrl,$content););$params);$params=http_build_query($content=$this->juhecurl(return$this->_returnArray(/请求接口返回内容paramstring$urlparamstring$paramsparamint$ipostreturnstring将JSON内容转为数据,并返回paramstring$content内容returnarray*/publicfunction_returnArray($content)returnjson_decode()$content,true);/*请求的URL地址请求的参数是否采用POST形式1);*/publicfunctionjuhec

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论