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 缓冲的免费实现方法
Oct 09 PHP
phpcms模块开发之swfupload的使用介绍
Apr 28 PHP
解析php中curl_multi的应用
Jul 17 PHP
php实现查看邮件是否已被阅读的方法
Dec 03 PHP
PHP调用VC编写的COM组件实例
Mar 29 PHP
免费手机号码归属地API查询接口和PHP使用实例分享
Apr 10 PHP
ThinkPHP的截取字符串函数无法显示省略号的解决方法
Jun 25 PHP
简单谈谈php中的unicode和utf8编码
Jun 10 PHP
php封装的验证码类分享
Feb 26 PHP
THINKPHP截取中文字符串函数实例代码
Mar 20 PHP
laravel框架 laravel-admin上传图片到oss的方法
Oct 13 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
Netflix将与CLAMP、乙一以及冲方丁等6名知名制作人合伙展开原创动画计划!
2020/03/06 日漫
php中有关合并某一字段键值相同的数组合并的改进
2015/03/10 PHP
用JavaScript脚本实现Web页面信息交互
2006/10/11 Javascript
基于dom编程中 动态创建与删除元素的使用
2013/04/17 Javascript
JS简单计算器实例
2015/01/20 Javascript
详解AngularJS中module模块的导入导出
2015/12/10 Javascript
JS实现页面数据无限加载
2016/09/13 Javascript
bootstrap datetimepicker日期插件使用方法
2017/01/13 Javascript
浅谈JavaScript异步编程
2017/01/20 Javascript
bootstrap table插件的分页与checkbox使用详解
2017/07/23 Javascript
原生JavaScript实现的简单放大镜效果示例
2018/02/07 Javascript
JS中promise化微信小程序api
2018/04/12 Javascript
小程序自定义组件实现城市选择功能
2018/07/18 Javascript
layui实现table加载的示例代码
2018/08/14 Javascript
vue自定义js图片碎片轮播图切换效果的实现代码
2019/04/28 Javascript
django简单的前后端分离的数据传输实例 axios
2020/05/18 Javascript
[03:07]【DOTA2亚洲邀请赛】我们,梦开始的地方
2017/03/07 DOTA
Python中特殊函数集锦
2015/07/27 Python
在python的类中动态添加属性与生成对象
2016/09/17 Python
Python 中包/模块的 `import` 操作代码
2019/04/22 Python
python3实现二叉树的遍历与递归算法解析(小结)
2019/07/03 Python
python numpy 常用随机数的产生方法的实现
2019/08/21 Python
Django配置MySQL数据库的完整步骤
2019/09/07 Python
浅谈python多线程和多线程变量共享问题介绍
2020/04/17 Python
关于python3.7安装matplotlib始终无法成功的问题的解决
2020/07/28 Python
python在linux环境下安装skimage的示例代码
2020/10/14 Python
Ubuntu权限不足无法创建文件夹解决方案
2020/11/14 Python
巧用HTML5给按钮背景设计不同的动画简单实例
2016/08/09 HTML / CSS
HTML5 video循环播放多个视频的方法步骤
2020/08/06 HTML / CSS
美国著名的女性内衣零售商:Frederick’s of Hollywood
2018/02/24 全球购物
《天游峰的扫路人》教学反思
2014/04/25 职场文书
药剂专业个人求职信范文
2014/04/29 职场文书
分居协议书范本(律师见证版)
2014/11/26 职场文书
WordPress多语言翻译插件 - WPML使用教程
2021/04/01 PHP
分享几个JavaScript运算符的使用技巧
2021/04/24 Javascript
matplotlib如何设置坐标轴刻度的个数及标签的方法总结
2021/06/11 Python