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代码
Dec 06 PHP
php+iframe实现隐藏无刷新上传文件
Feb 10 PHP
支持中文字母数字、自定义字体php验证码代码
Feb 27 PHP
Apache服务器无法使用的解决方法
May 08 PHP
php全局变量和类配合使用深刻理解
Jun 05 PHP
深入解析phpCB批量转换的代码示例
Jun 27 PHP
解析PHP中empty is_null和isset的测试
Jun 29 PHP
你可能不知道PHP get_meta_tags()函数
May 12 PHP
PHP获取当前完整URL地址的函数
Dec 21 PHP
织梦sitemap地图实时推送给百度的教程
Aug 03 PHP
php监测数据是否成功插入到Mysql数据库的方法
Nov 25 PHP
PHP实现浏览器格式化显示XML的方法示例
Jan 22 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 删除文件与文件夹操作 unlink()与rmdir()这两个函数的使用
2011/07/17 PHP
PHP编程函数安全篇
2013/01/08 PHP
php输入数据统一类实例
2015/02/23 PHP
PHP中把有符号整型转换为无符号整型方法
2015/05/27 PHP
javascript实现的鼠标链接提示效果生成器代码
2007/06/28 Javascript
由Javascript实现的页面日历
2011/11/04 Javascript
JS取request值以及自动执行使用示例
2014/02/24 Javascript
js二维数组定义和初始化的三种方法总结
2014/03/03 Javascript
不要使用jQuery触发原生事件的方法
2014/03/03 Javascript
jQuery使用append在html元素后同时添加多项内容的方法
2015/03/26 Javascript
js获取时间精确到秒(年月日)
2016/03/16 Javascript
jQuery中借助deferred来请求及判断AJAX加载的实例讲解
2016/05/24 Javascript
Js利用console计算代码运行时间的方法示例
2017/09/24 Javascript
解决Vue-cli npm run build生产环境打包,本地不能打开的问题
2018/09/20 Javascript
在Node.js下运用MQTT协议实现即时通讯及离线推送的方法
2019/01/24 Javascript
封装一下vue中的axios示例代码详解
2020/02/16 Javascript
python制作企业邮箱的爆破脚本
2016/10/05 Python
python Web开发你要理解的WSGI & uwsgi详解
2018/08/01 Python
python求解数组中两个字符串的最小距离
2018/09/27 Python
Python @property及getter setter原理详解
2020/03/31 Python
Pandas把dataframe或series转换成list的方法
2020/06/14 Python
Python判断远程服务器上Excel文件是否被人打开的方法
2020/07/13 Python
ASP.NET Core中的配置详解
2021/02/05 Python
支持IE8的纯css3开发的响应式设计动画菜单教程
2014/11/05 HTML / CSS
泰国第一的化妆品网站:Konvy
2018/02/25 全球购物
计算机专业职业生涯规划范文
2014/01/19 职场文书
学习交流会主持词
2014/04/01 职场文书
2014年重阳节老干部座谈会上的讲话稿
2014/09/25 职场文书
工伤事故赔偿协议书(标准)
2014/09/29 职场文书
党员群众路线整改措施及今后努力方向
2014/10/28 职场文书
廉洁自律证明
2015/06/24 职场文书
公司宣传语大全
2015/07/13 职场文书
四则混合运算教学反思
2016/02/23 职场文书
springboot利用redis、Redisson处理并发问题的操作
2021/06/18 Java/Android
python中数组和列表的简单实例
2022/03/25 Python
Mysql超详细讲解死锁问题的理解
2022/04/01 MySQL