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中操作MySQL数据库的一些要注意的问题
Oct 09 PHP
php 连接mysql连接被重置的解决方法
Feb 15 PHP
PHP学习之正则表达式
Apr 17 PHP
php面向对象 字段的声明与使用
Jun 14 PHP
深入解析PHP 5.3.x 的strtotime() 时区设定 警告信息修复
Aug 05 PHP
PHP生成不同颜色、不同大小的tag标签函数
Sep 23 PHP
php数组操作之键名比较与差集、交集赋值的方法
Nov 10 PHP
如何利用http协议发布博客园博文评论
Aug 03 PHP
关于WordPress的SEO优化相关的一些PHP页面脚本技巧
Dec 10 PHP
PHP程序中使用adodb连接不同数据库的代码实例
Dec 19 PHP
PHP Smarty模版简单使用方法
Mar 30 PHP
php验证码生成器
May 24 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中创建和调用webservice接口示例
2014/07/25 PHP
php post大量数据时发现数据丢失问题解决方法
2015/06/20 PHP
一个PHP实现的轻量级简单爬虫
2015/07/08 PHP
php 使用html5实现多文件上传实例
2016/10/24 PHP
优化网页之快速的呈现我们的网页
2007/06/29 Javascript
Jquery ajaxsubmit上传图片实现代码
2010/11/04 Javascript
ASP.NET jQuery 实例8 (动态添加内容到DropDownList)
2012/02/03 Javascript
javascript获取网页中指定节点的父节点、子节点的方法小结
2013/04/24 Javascript
js onload处理html页面加载之后的事件
2013/10/30 Javascript
js控制分页打印、打印分页示例
2014/02/08 Javascript
判断复选框是否被选中的两种方法
2014/06/04 Javascript
js实现鼠标滚轮控制图片缩放效果的方法
2015/02/20 Javascript
原生js的数组除重复简单实例
2016/05/24 Javascript
如何学JavaScript?前辈的经验之谈
2016/12/28 Javascript
小程序实现发表评论功能
2018/07/06 Javascript
JS封装的模仿qq右下角消息弹窗功能示例
2018/08/22 Javascript
JS获取动态添加元素的方法详解
2019/07/31 Javascript
微信小程序点击列表跳转到对应详情页过程解析
2019/09/26 Javascript
python多线程方式执行多个bat代码
2016/06/07 Python
Python读取一个目录下所有目录和文件的方法
2016/07/15 Python
Python进阶之全面解读高级特性之切片
2019/02/19 Python
Django Admin 上传文件到七牛云的示例代码
2020/06/20 Python
如何用python实现一个HTTP连接池
2021/01/14 Python
详解移动端html5页面长按实现高亮全选文本内容的兼容解决方案
2016/12/03 HTML / CSS
澳大利亚最受欢迎的美发用品目的地:AMR
2019/08/28 全球购物
德国二手设计师时装和复古时装跳蚤市场:Mädchenflohmarkt
2020/11/09 全球购物
初级软件工程师面试题 Junior Software Engineer Interview
2015/02/15 面试题
什么是反射
2012/03/17 面试题
信号量和自旋锁的区别?如何选择使用?
2015/09/08 面试题
考生诚信考试承诺书
2014/05/23 职场文书
2015应届毕业生自荐信范文
2015/03/05 职场文书
小学中队长竞选稿
2015/11/20 职场文书
《少年闰土》教学反思
2016/02/18 职场文书
详解GaussDB for MySQL性能优化
2021/05/18 MySQL
图文详解nginx日志切割的实现
2022/01/18 Servers
MyBatis核心源码深度剖析SQL语句执行过程
2022/05/20 Java/Android