php采集自中央气象台范围覆盖全国的天气预报代码实例


Posted in PHP onJanuary 04, 2015

本文实例讲述了php采集自中央气象台范围覆盖全国的天气预报代码。分享给大家供大家参考。具体分析如下:

天气预报信息采集自中央气象台,信息准确,覆盖面广,代码简单,返回是json代码,可以用于客户端调用,也可以在服务器端处理后显示,笔者的wordpress天气预报插件就是使用的这段代码,需要注意的是,这段代码会在服务器产生缓存文件,需要在当前目录中新建data文件夹,保证文件夹可写.

php天气预报代码如下:

/* 

作者:    freemouse 

主页:    www.cnphp.info 

接口demo: http://www.cnphp.info/tianqi 

用法: 可以直接调用上面的地址会显示当地的天气信息,也可以这样用 

http://www.cnphp.info/tianqi/?q=江苏省南京市 

**/
$p = $_get['q'];  

$k = 0;  

$encoding = mb_detect_encoding($p);  

if($encoding != "utf-8"){  

        $p = mb_convert_encoding($p,"utf-8","gbk");  

}  

$p_arr = array(  

       "01" => "北京",  

      "02" => "上海",  

      "03" => "天津",  

      "04" => "重庆",  

      "05" => "黑龙江",  

      "06" => "吉林",  

      "07" => "辽宁",  

      "08" => "内蒙古",  

      "09" => "河北",  

      "10" => "山西",  

      "11" => "陕西",  

      "12" => "山东",  

      "13" => "新疆",  

      "14" => "西藏",  

      "15" => "青海",  

      "16" => "甘肃",  

      "17" => "宁夏",  

      "18" => "河南",  

      "19" => "江苏",  

      "20" => "湖北",  

      "21" => "浙江",  

      "22" => "安徽",  

      "23" => "福建",  

      "24" => "江西",  

      "25" => "湖南",  

      "26" => "贵州",  

      "27" => "四川",  

      "28" => "广东",  

      "29" => "云南",  

      "30" => "广西",  

      "31" => "海南",  

      "32" => "香港",  

      "33" => "澳门",  

      "34" => "台湾" 

); 
function find(&$item,$key,$data){  

        global $k;  

        if(preg_match("/$item/u",$data)){  

           $k = $key;  

        }  

} 
function get_data_arr($key){  

        if(!file_exists("./data/city{$key}.xml")){  

            $c =file_get_contents( "http://m.weather.com.cn/data5/city{$key}.xml" );  

            file_put_contents("./data/city{$key}.xml",$c);  

        }  

        else{  

            $c = file_get_contents("./data/city{$key}.xml");  

        }  

       $arr = explode(",",$c);  

       foreach($arr as $v){  

           $data = explode("|",$v);  

           $ret[$data[0]] = $data[1];  

       }

       return $ret;  

} 
array_walk($p_arr,'find',$p);  

array_walk(get_data_arr($k),'find',$p);  

array_walk(get_data_arr($k),'find',$p);  

$ccode = get_data_arr($k);  

echo file_get_contents("http://m.weather.com.cn/data/{$ccode[$k]}.html");

希望本文所述对大家的php程序设计有所帮助。

PHP 相关文章推荐
PHP动态创建Web站点的方法
Aug 14 PHP
解析在PHP中使用全局变量的几种方法
Jun 24 PHP
PHP基于工厂模式实现的计算器实例
Jul 16 PHP
浅谈php7的重大新特性
Oct 23 PHP
PHP从二维数组得到N层分类树的实现代码
Oct 11 PHP
redis查看连接数及php模拟并发创建redis连接的方法
Dec 15 PHP
lnmp安装多版本PHP共存的方法详解
Aug 02 PHP
PHP实现一个轻量级容器的方法
Jan 28 PHP
PHP实现会员账号单唯一登录的方法分析
Mar 07 PHP
yii2的restful api路由实例详解
May 14 PHP
基于PHP实现微信小程序客服消息功能
Aug 12 PHP
Jsonp劫持学习
Apr 01 PHP
php模仿asp Application对象在线人数统计实现方法
Jan 04 #PHP
THINKPHP2.0到3.0有哪些改进之处
Jan 04 #PHP
浅谈thinkphp的实例化模型
Jan 04 #PHP
Thinkphp中的curd应用实用要点
Jan 04 #PHP
PHP+jquery实时显示网站在线人数的方法
Jan 04 #PHP
thinkphp备份数据库的方法分享
Jan 04 #PHP
js+php实现静态页面实时调用用户登陆状态的方法
Jan 04 #PHP
You might like
ThinkPHP采用模块和操作分析
2011/04/18 PHP
PHP 利用AJAX获取网页并输出的实现代码(Zjmainstay)
2012/08/31 PHP
PHP中“简单工厂模式”实例代码讲解
2012/09/04 PHP
PHP中静态变量的使用方法实例分析
2016/12/01 PHP
PHP7 整型处理机制修改
2021/03/09 PHP
JQuery 插件制作实践 xMarquee插件V1.0
2010/04/02 Javascript
jQuery搜索同辈元素方法
2015/02/10 Javascript
javascript实现点击按钮让DIV层弹性移动的方法
2015/02/24 Javascript
jQuery实现仿美橙互联两级导航菜单的方法
2015/03/09 Javascript
12行javascript代码绘制一个八卦图
2015/04/02 Javascript
js控制网页前进和后退的方法
2015/06/08 Javascript
jQuery动画显示和隐藏效果实例演示(附demo源码下载)
2015/12/31 Javascript
javaScript事件学习小结(四)event的公共成员(属性和方法)
2016/06/09 Javascript
jQuery常用样式操作实例分析(获取、设置、追加、删除、判断等)
2016/09/08 Javascript
js 获取html5的data属性实现方法
2017/07/28 Javascript
node.js使用免费的阿里云ip查询获取ip所在地【推荐】
2018/09/03 Javascript
优雅的在React项目中使用Redux的方法
2018/11/10 Javascript
Vue.js标签页组件使用方法详解
2019/10/19 Javascript
对python中的pop函数和append函数详解
2018/05/04 Python
python使用turtle绘制分形树
2018/06/22 Python
Python-while 计算100以内奇数和的方法
2019/06/11 Python
详解python解压压缩包的五种方法
2019/07/05 Python
Python3多线程版TCP端口扫描器
2019/08/31 Python
python 利用已有Ner模型进行数据清洗合并代码
2019/12/24 Python
使用Dajngo 通过代码添加xadmin用户和权限(组)
2020/07/03 Python
Python变量及数据类型用法原理汇总
2020/08/06 Python
Python 无限级分类树状结构生成算法的实现
2021/01/21 Python
goodhealth官方海外旗舰店:新西兰国民营养师
2017/12/15 全球购物
EJB面试题
2015/07/28 面试题
物业管理大学生个人的自我评价
2013/10/10 职场文书
会计专业应届生自荐信
2014/02/07 职场文书
建筑工程专业大学生求职信
2014/04/23 职场文书
小学生安全保证书
2015/05/09 职场文书
Python实现批量自动整理文件
2022/03/16 Python
动画「半妖的夜叉姬」新BD特典图公开
2022/03/22 日漫
JavaScript模拟实现网易云轮播效果
2022/04/04 Javascript