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

2026-02-04 13:23:34

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["weatherinfo"]["city"]

我处理的如下,大家不喜欢的可以按自己的格式修改:

<?php

function 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]微信天气预报

声明:本网站引用、摘录或转载内容仅供网站访问者交流或参考,不代表本站立场,如存在版权或非法内容,请联系站长删除,联系邮箱:site.kefu@qq.com。
猜你喜欢