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数据库操作面向对象的优点
Oct 09 PHP
使用PHP的日期与时间函数技巧
Apr 24 PHP
php zip文件解压类代码
Dec 02 PHP
Eclipse中php插件安装及Xdebug配置的使用详解
Apr 25 PHP
解析php中var_dump,var_export,print_r三个函数的区别
Jun 21 PHP
浅谈php正则表达式中的非贪婪模式匹配的使用
Nov 25 PHP
PHP连接操作access数据库实例
Mar 30 PHP
php实现点击可刷新验证码
Nov 07 PHP
Yii2使用swiftmailer发送邮件的方法
May 03 PHP
基于CI框架的微信网页授权库示例
Nov 25 PHP
thinkPHP+phpexcel实现excel报表输出功能示例
Jun 06 PHP
thinkPHP5框架设置404、403等http状态页面的方法
Jun 05 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
php实现设计模式中的单例模式详解
2014/10/11 PHP
基于PHP实现简单的随机抽奖小程序
2016/01/05 PHP
innerText和innerHTML 一些问题分析
2009/05/18 Javascript
jQuery中element选择器用法实例
2014/12/29 Javascript
Jquery树插件zTree用法入门教程
2015/02/17 Javascript
jquery+html5烂漫爱心表白动画代码分享
2015/08/24 Javascript
JavaScript中的Function函数
2015/08/27 Javascript
jquery validate demo 基础
2015/10/29 Javascript
js表单登陆验证示例
2016/10/19 Javascript
[原创]JavaScript语法高亮插件highlight.js用法详解【附highlight.js本站下载】
2016/11/01 Javascript
Node.js 使用流实现读写同步边读边写功能
2017/09/11 Javascript
vue组件watch属性实例讲解
2017/11/07 Javascript
Vue源码解析之Template转化为AST的实现方法
2018/12/14 Javascript
优雅的elementUI table单元格可编辑实现方法详解
2018/12/23 Javascript
Vue3 源码导读(推荐)
2019/10/14 Javascript
vue 项目中当访问路由不存在的时候默认访问404页面操作
2020/08/31 Javascript
python 查找文件夹下所有文件 实现代码
2009/07/01 Python
Python下的Mysql模块MySQLdb安装详解
2014/04/09 Python
跟老齐学Python之不要红头文件(1)
2014/09/28 Python
Python实现给qq邮箱发送邮件的方法
2015/05/28 Python
python异常和文件处理机制详解
2016/07/19 Python
Python爬虫实现网页信息抓取功能示例【URL与正则模块】
2017/05/18 Python
Python中关于Sequence切片的下标问题详解
2017/06/15 Python
解决PyCharm不运行脚本,而是运行单元测试的问题
2019/01/17 Python
Python进阶之@property动态属性的实现
2019/04/01 Python
numpy concatenate数组拼接方法示例介绍
2019/05/27 Python
Python爬虫爬取新闻资讯案例详解
2020/07/14 Python
python调用百度AI接口实现人流量统计
2021/02/03 Python
公司周年庆典邀请函
2014/01/12 职场文书
高二生物教学反思
2014/01/27 职场文书
学校评语大全
2014/05/06 职场文书
读书伴我成长演讲稿
2014/05/07 职场文书
幼儿教师师德师风自我剖析材料
2014/09/29 职场文书
2019垃圾分类宣传口号汇总
2019/08/16 职场文书
javascript代码简写的几种常用方式汇总
2021/08/23 Javascript
java中为什么说子类的构造方法默认访问的是父类的无参构造方法
2022/04/13 Java/Android