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将数据导入到Foxmail
Oct 09 PHP
php面向对象全攻略 (十五) 多态的应用
Sep 30 PHP
PHP导出Excel实例讲解
Jan 24 PHP
thinkPHP3.1验证码的简单实现方法
Apr 22 PHP
PHP实现的进度条效果详解
May 03 PHP
PHP实现移除数组中为空或为某值元素的方法
Jan 07 PHP
thinkPHP+phpexcel实现excel报表输出功能示例
Jun 06 PHP
PHP实现模拟http请求的方法分析
Dec 20 PHP
Yii框架引入coreseek分页功能示例
Feb 08 PHP
PHP实现的支付宝支付功能示例
Mar 26 PHP
thinkPHP+mysql+ajax实现的仿百度一下即时搜索效果详解
Jul 15 PHP
TP5框架实现签到功能的方法分析
Apr 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 mysql数据库操作类
2008/06/04 PHP
PHP操作MongoDB时的整数问题及对策说明
2011/05/02 PHP
解析php扩展php_curl.dll不加载的解决方法
2013/06/26 PHP
浅析PHP中Session可能会引起并发问题
2015/07/23 PHP
在Mac OS下搭建LNMP开发环境的步骤详解
2017/03/10 PHP
PHP实时统计中文字数和区别
2019/02/28 PHP
非常漂亮的JS代码经典广告
2007/10/21 Javascript
使用按钮控制以何种方式打开新窗口的属性介绍
2012/12/17 Javascript
javascript实现禁止复制网页内容
2014/12/16 Javascript
javascript实现随机显示星星特效
2016/01/28 Javascript
详解JavaScript节流函数中的Throttle
2016/07/16 Javascript
卸载安装Node.js与npm过程详解
2016/08/15 Javascript
vue监听scroll的坑的解决方法
2017/09/07 Javascript
详解基于 Nuxt 的 Vue.js 服务端渲染实践
2017/10/24 Javascript
Angular父组件调用子组件的方法
2018/04/02 Javascript
详解基于Vue2.0实现的移动端弹窗(Alert, Confirm, Toast)组件
2018/08/02 Javascript
Element输入框带历史查询记录的实现示例
2019/01/15 Javascript
详解微信小程序scroll-view横向滚动的实践踩坑及隐藏其滚动条的实现
2019/03/14 Javascript
vue 路由守卫(导航守卫)及其具体使用
2020/02/25 Javascript
Flask SQLAlchemy一对一,一对多的使用方法实践
2013/02/10 Python
Python使用Pycrypto库进行RSA加密的方法详解
2016/06/06 Python
用Python将IP地址在整型和字符串之间轻松转换
2017/03/22 Python
用Python删除本地目录下某一时间点之前创建的所有文件的实例
2017/12/14 Python
Python3实现将本地JSON大数据文件写入MySQL数据库的方法
2018/06/13 Python
Tensorflow不支持AVX2指令集的解决方法
2020/02/03 Python
Skyscanner波兰:廉价航班
2017/11/07 全球购物
绿色美容,有机护肤品和化妆品:Safe & Chic
2018/10/29 全球购物
项目经理岗位职责
2013/11/11 职场文书
国际贸易专业个人职业生涯规划
2014/02/15 职场文书
对教师的评语
2014/04/28 职场文书
开展党的群众路线教育实践活动情况汇报
2014/11/05 职场文书
2014年财政所工作总结
2014/11/22 职场文书
优秀少先队辅导员事迹材料
2014/12/24 职场文书
适合毕业生创业的项目怎么找?
2019/08/08 职场文书
授权协议书范本(3篇)
2019/10/15 职场文书
用Python可视化新冠疫情数据
2022/01/18 Python