根据ip显示天气预报
程序说明:功能:获取用户所在城市天气预报,也可以指定城市(如:参数"citycode=51463"),默认为北京。 如果用户所在城市不在天气预报范围,则显示该省省会城市的天气预报。 如果获取用户ip未成功,则显示北京天气。 可以指定当天,未来24小时,未来72小时天气(如:参数"model=1,2,3")。
原理:利用QQ纯真ip库(QQWry.dat),通过用户ip获取用户所在地理位置(QQWry.class.php,该类用于读取ip库,返回地理位置。来自网上),再从中央气象局天气预报城市编码库中查询得到该城市的编码(citycode.inc.php是我从官方网站整理得到的省份,城市与编码的数组表),通过该编码即可抓取中央气象局发布的各城市天气信息,然后将该信息存储为xml文件。
当用户访问时,判断是否存在该城市天气信息,如果不存在则马上获取,如果已过期则更新为当日信息,当用户需要的天气信息合理存在时,直接读取显示给用户。
优点:自动获取天气信息,及时反应天气情况。可以指定城市和指定时期。缺点:如果原网站页面布局有变动,将不能得到正确的信息。 ip地址也是随时都可能变动的,所以应该经常更新ip库,以尽量保证获取的地理位置的真是性。
下面是演示连接:获取用户所在城市未来72小时天气预报:http://www.dajiahuan.com/weather/weather.php
获取用户所在城市当天天气预报:http://www.dajiahuan.com/weather/weather.php?model=1
获取指定城市指定时期天气预报http://www.dajiahuan.com/weather/weather.php?citycode=51463&model=1http://www.dajiahuan.com/weather/weather.php?citycode=51463&model=2http://www.dajiahuan.com/weather/weather.php?citycode=51463&model=3
安装说明:下载下面提供的weather.rar,解压后上传至服务器任一目录。运行"http://yoursite/weather/weather.php",呵呵!