微信开发详解:[4]微信天气预报

2024-10-14 07:57:43

1、数据源:要做一个微信查天气的平台,首先要能够取得天气数据,目前我们一般在中国气象网上获取数据。这里有全面准确的天气信息。

微信开发详解:[4]微信天气预报

2、数据获取:一般使用file_get_contents()函数去请求中国气象网的http://m.weather.com.cn/data/101110101.html这个链接(这个是西安的天气),不过仅限于学习使用,商业用途请主动联系中国气象网,否则后果自负。示例:<?php$url=http://m.weather.com.cn/data/101110101.html$str=file_get_contents($url);echo $str;?>

微信开发详解:[4]微信天气预报

3、函数学习:如上,获取到数据后是一个json的数据函数json_decode() 的功能时将json数据格式转换为数组。示例:<?php$url=http://m.weather.com.cn/data/101110101.html$str=file_get_contents($url);$aa=json_decode($str,true);print_r($aa);?>结果如图,可见json的数据变成了一个二维数组。

微信开发详解:[4]微信天气预报

4、编写数据获取的函数:在数据获取的链接中,最后面的一串数字是城市代码。所以我们要胆咣骜岱编写一个通用的函数,只要传一个城市代码的参数就可以返回这个城市的天气情况,为防止出错,我们让默认酴兑镗笄查询的是西安的天气。function weather($code="101110101"){$url="http://m.weather.com.cn/data/".$code.".html";$str=file_get_contents($url);$aa=json_decode($str,true);print_r($aa);}

微信开发详解:[4]微信天气预报

5、数倌栗受绽据处理:下一步就是对获取到的数据处理,在函数中将获取到的数据重新组合,将有用的返回。例如要获取到天气的地方可用:$aa["w髫潋啜缅eatherinfo"]["city"]我处理的如下,大家不喜欢的可以按自己的格式修改:<?phpfunction weather($code="101110101"){$url="http://m.weather.com.cn/data/".$code.".html";$str=file_get_contents($url);$aa=json_decode($str,true);echo $aa["weatherinfo"]["date_y"] . $aa["weatherinfo"]["city"] ." 的天气是:";echo $aa["weatherinfo"]["temp1"] . $aa["weatherinfo"]["weather1"].$aa["weatherinfo"]["wind1"]."<br>";echo "温馨提示:".$aa["weatherinfo"]["index_d"];}weather(101010100);?>输入如图,在函数调用时,我换成了北京的城市代码,所以输出中显示北京的天气。

微信开发详解:[4]微信天气预报

6、城市代码列表:正式使用上,应该将城市名和对应代码存在数据库中,用来对应全国各个城市的天气,有php基础的可以用数据库操作,这个示例中,我们以数组为例,列举几个城市的天气。$citycode["北京"]="101010100";$citycode["西安"]="101110101";$citycode["上海"]="101020100";$citycode["重庆"]="101040100.";$citycode["广州"]="101280101";

微信开发详解:[4]微信天气预报

7、打开百度bae编辑平台,先将查询天气的函数放到程序的前面,放置位置如图。

微信开发详解:[4]微信天气预报

8、修改对$keyword的处理,提示用户查询的城市名,如果我们列举的城市中有,就返回天气,没有就给一个其他提示。$citycode[暧苗争死"北京"]="101010100";$citycode["西安"]="101110101";$citycode["上海"]="101020100";$citycode["重庆"]="101040100";$citycode["广州"]="101280101";if($citycode[$keyword]!=""){$contentStr=weather($citycode[$keyword]);}else $contentStr = "暂时我们只能查北京,西安,上海,重庆,广州的天气哦";

微信开发详解:[4]微信天气预报

9、到微信中发送对应的城市,试试查询结果,能够查到就说明制作成功了,没有成功的可以留言啊。

微信开发详解:[4]微信天气预报

10、对于城市代码,想要更完善的可以对应的添加其他的城市到数组,不过最好的办法是添加到数据库中,实时查询各个城市的天气。对于数据库的操作,以后将会讲到。

微信开发详解:[4]微信天气预报
猜你喜欢