位置: 编程技术 - 正文
推荐整理分享微信公众平台开发(五) 天气预报功能开发(微信公众平台官网),希望有所帮助,仅作参考,欢迎阅读内容。
文章相关热门搜索词:微信公众平台开发者文档,怎么开通公众号微信公众平台,微信公众平台小程序注册,微信公众平台开发者文档,微信公众平台开发,微信公众平台开发者文档,微信公众平台开店,微信公众平台开发,内容如对您有帮助,希望把文章链接给更多的朋友!
一、简介
前面几篇文章对微信公众平台的开通及简单使用做了简单的介绍,但都没有涉及到实际使用中的问题,例如天气查询,公交查询,快递查询等。接下来的几篇文章将对实际生活中会经常使用到的一些功能进行开发讲解,以供读者参考。
这一篇文章将对大家每天都会关心的天气查询进行开发,例如,用户发送消息 “苏州天气”,则会返回苏州实时天气状况,以及未来两天甚至未来五天的天气状况。
二、思路分析
首先要对用户发送过来的消息进行判断,判断消息里是否含有“天气”关键字,如果含有,则需要继续提取地区信息,然后再通过中国天气网( “地区+天气”,所以首先截取后两个字,判断是否为 “天气” 关键字。
使用php函数 mb_substr() 截取,关于该函数的用法:
mb_substr — 获取字符串的部分
说明:根据字符数执行一个多字节安全的 substr() 操作。 位置是从 str 的开始位置进行计数。 第一个字符的位置是 0。第二个字符的位置是 1,以此类推。
参数:
str
从该 string 中提取子字符串。
start
str 中要使用的第一个字符的位置。
正数 -> 从字符串开头指定位置开始;
负数 -> 从字符串结尾指定位置开始;
length
str 中要使用的最大字符数。
正数 -> 从 start 处开始最多包括 length 个字符;
负数 -> string 末尾处的 length 个字符将会被漏掉(若 start 是负数则从字符串开头算起)。
encoding
encoding 参数为字符编码。如果省略,则使用内部字符编码。
返回值:
mb_substr() 函数根据 start 和 length 参数返回 str 中指定的部分。
从消息的结尾数第二个字符开始截取,截取两个字符,然后加以判断是否为 “天气” 关键字。
下面进行地区提取,还是使用 mb_substr() 函数。
$str_key = mb_substr($keyword,0,-2,"UTF-8");
从消息的开头开始,截掉末尾的两个字符(天气),既得地区关键字。
然后进行判断,继而调用函数查询天气数据。
四、调用 weather() 函数查询
我们这里调用的是中国国家气象局提供的天气预报API接口,接口地址: 函数如下:
这里include 了一个城市对应关系文件 weather_cityId.php,格式如下:
根据传入的城市名,得到城市代码,如果不为空,则调用中国天气网的API进行查询,返回json格式的数据,然后进行解析并返回数据,如果为空,则返回null值。
五、组织回复消息形式
判断返回数据是否为空,若为空,则 $contentStr = "抱歉,没有查到"".$str_key.""的天气信息!";
若返回数据不为空,则:
说明:
$data->weatherinfo->city //获取城市名,这里为苏州
$data->weatherinfo->date_y //获取日期,这里为年7月9日
$data->weatherinfo->fchh //数据发布时间
$data->weatherinfo->weather1 //实时天气
$data->weatherinfo->temp1 //实时温度
$data->weatherinfo->wind1 //实时风向和风速
$data->weatherinfo->index_d //穿衣指数
weather2, temp2, wind2 分别代表了明天的天气,温度和风向风速,其他的以此类推。
n //表示换行
六、测试
七、完整代码
关于城市对应关系文件 weather_cityId.php,目前更新到了个城市,以后还会继续增加,请到官方网盘
详解PHP用substr函数截取字符串中的某部分 经常看到有新手问PHP有没有类似asp的left函数或right函数,实现截取某字符串左边或右边开始N个字符的函数。答案当然是有的。PHP中的substr函数就可以做
thinkphp实现分页显示功能 先上效果图,突然发现和B站上一样IndexController.class.php代码如下publicfunctionindex(){$m=M('Info');$count=$m-where($where)-count();$pageCount=;//每页显示数量$page=newThinkPa
php 魔术常量详解及实例代码 php魔术常量详解实例:classMoShu{publicfunctionmoshu(){echo'当前类名:'.__CLASS__."br/";echo'当前方法名:'.__FUNCTION__."br/";echo'当前文件中所在的行数:'.__LINE__."br/";
标签: 微信公众平台官网
本文链接地址:https://www.jiuchutong.com/biancheng/301309.html 转载请保留说明!友情链接: 武汉网站建设