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脚本的10个技巧(1)
Oct 09 PHP
php array_walk() 数组函数
Jul 12 PHP
破解.net程序(dll文件)编译和反编译方法
Jan 31 PHP
解析PHP正则提取或替换img标记属性
Jun 26 PHP
PHP实现读取一个1G的文件大小
Aug 24 PHP
实现PHP+Mysql无限分类的方法汇总
Mar 02 PHP
PHP的mysqli_set_charset()函数讲解
Jan 23 PHP
PHP 数组黑名单/白名单实例代码详解
Jun 04 PHP
php DES加密算法实例分析
Sep 18 PHP
laravel 获取某个查询的查询SQL语句方法
Oct 12 PHP
通过PHP实现用户注册后邮箱验证激活
Nov 10 PHP
PHP执行系统命令函数实例讲解
Mar 03 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中HTTP方式下的Gzip压缩传输方法举偶
2007/02/15 PHP
一个简单的网页密码登陆php代码
2012/07/17 PHP
Symfony2之session与cookie用法小结
2016/03/18 PHP
PHP中用Trait封装单例模式的实现
2019/12/18 PHP
使两个iframe的高度与内容自适应,且相等
2006/11/20 Javascript
jquery提示 "object expected"的解决方法
2009/12/13 Javascript
javascript 实现 秒杀,团购 倒计时展示的记录 分享
2013/07/12 Javascript
javascript在myeclipse中报错的解决方法
2013/10/29 Javascript
zTree插件之单选下拉菜单实例代码
2013/11/07 Javascript
javascript对象的使用和属性操作示例详解
2014/03/02 Javascript
Nodejs Post请求报socket hang up错误的解决办法
2014/09/25 NodeJs
jQuery实现的登录浮动框效果代码
2015/09/26 Javascript
AngularJS中的指令全面解析(必看)
2016/05/20 Javascript
原生JS实现图片轮播效果
2016/12/26 Javascript
图片懒加载插件实例分享(含解析)
2017/01/09 Javascript
JavaScript数据结构之数组的表示方法示例
2017/04/12 Javascript
jQuery读取本地的json文件(实例讲解)
2017/10/31 jQuery
nodejs发送http请求时遇到404长时间未响应的解决方法
2017/12/10 NodeJs
Vue的土著指令和自定义指令实例详解
2018/02/04 Javascript
jquery引入外部CDN 加载失败则引入本地jq库
2018/05/23 jQuery
Js视频播放器插件Video.js使用方法详解
2020/02/04 Javascript
[01:34:42]NAVI vs EG 2019国际邀请赛小组赛 BO2 第二场 8.15
2019/08/17 DOTA
python 采集中文乱码问题的完美解决方法
2016/09/27 Python
python利用OpenCV2实现人脸检测
2020/04/16 Python
python爬虫获取淘宝天猫商品详细参数
2020/06/23 Python
Python中使用Counter进行字典创建以及key数量统计的方法
2018/07/06 Python
python实现简单登陆系统
2018/10/18 Python
python读取图片任意范围区域
2019/01/23 Python
python利用openpyxl拆分多个工作表的工作簿的方法
2019/09/27 Python
Python实现ATM系统
2020/02/17 Python
巴西在线鞋店:Shoestock
2017/10/28 全球购物
家长寄语大全
2014/04/02 职场文书
总经理任命书范本
2014/06/05 职场文书
原料仓管员岗位职责
2015/04/01 职场文书
会议开幕致辞怎么写
2016/03/03 职场文书
2019通用版新员工入职培训方案!
2019/07/11 职场文书