微信公众平台开发4:天气预报

思路

首先要对用户发送过来的消息进行判断,判断消息里是否含有“天气”关键字,如果含有,则需要继续提取地区信息,然后再通过中国天气网(http://www.weather.com.cn)

提供的开放API进行查询。

实时天气信息API:http://www.weather.com.cn/data/sk/101110101.html

关键字判断与地区读取

用户发送过来查询天气的消息格式是固定好的,即 “地区+天气”,所以首先截取后两个字,判断是否为 “天气” 关键字。

我们使用php的 mb_substr()函数截取:

$str=mb_substr($keyword,-2,2,"UTF-8");

从消息的结尾第二个字符开始截取,截取两个字符,然后加以判断是否为 “天气” 关键字。

下面进行地区提取,还是使用 mb_substr() 函数。

$str_key=mb_substr($keyword,0,-2,"UTF-8");

从消息的开头开始,截掉末尾的两个字符(天气),得地区关键字。

if($str=='天气'&&!empty($str_key)){//调用函数查询天气}

调用函数查询天气

接口地址:

http://www.weather.com.cn/data/sk/101110101.html

其中URL中的数字指代城市的编号101190401(苏州)。 返回信息格式如下:

{"weatherinfo":{"city":"西安","cityid":"101110101","temp":"24","WD":"东南风","WS":"2级","SD":"62%","WSE":"2","time":"21:00","isRadar":"1","Radar":"JC_RADAR_AZ9290_JB"}}

其中:

我们通过解析JSON,获取相应城市的天气数据。

weather() 函数如下:


这里include 了一个城市对应关系文件 weather_cityId.php,格式如下:

<?php$weather_cityId=array("北京"=>"101010100","上海"=>"101020100","苏州"=>"101190401");?>

根据传入的城市名,得到城市代码


效果:

欢迎关注我的公众号:

艺搜参考

网上的天气 API 哪一个更加可靠?

http://z3sm2012.iteye.com/blog/1880973

http://www.cnblogs.com/mchina/p/3170551.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值