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
使用无限生命期Session的方法
Oct 09 PHP
PHP入门
Oct 09 PHP
php FPDF类库应用实现代码
Mar 20 PHP
hadoop常见错误以及处理方法详解
Jun 19 PHP
php生成随机数的三种方法
Sep 10 PHP
PHP+Javascript实现在线拍照功能实例
Jul 18 PHP
谈谈你对Zend SAPIs(Zend SAPI Internals)的理解
Nov 10 PHP
linux下php上传文件注意事项
Jun 11 PHP
Laravel框架自定义验证过程实例分析
Feb 01 PHP
Yii框架参数配置文件params用法实例分析
Sep 11 PHP
php设计模式之工厂模式用法经典实例分析
Sep 20 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中nowdoc和heredoc使用需要注意的一点
2014/03/21 PHP
PHP程序中使用adodb连接不同数据库的代码实例
2015/12/19 PHP
PHP并发查询MySQL的实例代码
2017/08/09 PHP
php使用filter_var函数判断邮箱,url,ip格式示例
2019/07/06 PHP
超强的IE背景图片闪烁(抖动)的解决办法
2007/09/09 Javascript
javascript高级学习笔记整理
2011/08/14 Javascript
js取得url地址参数实例
2013/02/22 Javascript
JS在textarea光标处插入文本的小例子
2013/03/22 Javascript
js如何获取兄弟、父类等节点
2014/01/06 Javascript
jquery之别踩白块游戏的简单实现
2016/07/25 Javascript
jQuery加载及解析XML文件的方法实例分析
2017/01/22 Javascript
node.js程序作为服务并在windows下开机自启动(用forever)
2017/03/29 Javascript
详解Vue如何支持JSX语法
2017/11/10 Javascript
详解在React.js中使用PureComponent的重要性和使用方式
2018/07/10 Javascript
小程序实现左滑删除功能
2018/10/30 Javascript
VuePress 静态网站生成方法步骤
2019/02/14 Javascript
seajs和requirejs模块化简单案例分析
2019/08/26 Javascript
Js逆向实现滑动验证码图片还原的示例代码
2020/03/10 Javascript
[06:13]DOTA2进化论(修改版)
2013/10/08 DOTA
python中对list去重的多种方法
2014/09/18 Python
Python实现对象转换为xml的方法示例
2017/06/08 Python
mac安装pytorch及系统的numpy更新方法
2018/07/26 Python
详解Appium+Python之生成html测试报告
2019/01/04 Python
Python中super函数用法实例分析
2019/03/18 Python
python3爬虫学习之数据存储txt的案例详解
2019/04/24 Python
Python使用matplotlib实现交换式图形显示功能示例
2019/09/06 Python
python通过nmap扫描在线设备并尝试AAA登录(实例代码)
2019/12/30 Python
Python环境管理virtualenv&virtualenvwrapper的配置详解
2020/07/01 Python
详解python的xlwings库读写excel操作总结
2021/02/26 Python
南京某软件公司的.net面试题
2015/11/30 面试题
私有程序集与共享程序集有什么区别
2013/04/05 面试题
会议开场欢迎词
2014/01/15 职场文书
中学生清明节演讲稿
2015/03/18 职场文书
2015年派出所工作总结
2015/04/24 职场文书
《蚂蚁和蝈蝈》教学反思
2016/02/22 职场文书
如何利用React实现图片识别App
2022/02/18 Javascript