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 相关文章推荐
一个oracle+PHP的查询的例子
Oct 09 PHP
php adodb连接不同数据库
Mar 19 PHP
PHP中error_reporting()函数的用法(修改PHP屏蔽错误)
Jul 01 PHP
discuz程序的PHP加密函数原理分析
Aug 05 PHP
一个经典的PHP验证码类分享
Nov 18 PHP
smarty的section嵌套循环用法示例
May 28 PHP
PHP Header用于页面跳转时的几个注意事项
Oct 21 PHP
php实现的读取CSV文件函数示例
Feb 07 PHP
PHP实现对数组分页处理实例详解
Feb 07 PHP
thinkPHP5.0框架API优化后的友好性分析
Mar 17 PHP
php实现微信企业付款到个人零钱功能
Oct 09 PHP
PHP实现的敏感词过滤方法示例
Mar 06 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验证码类实例分享
2013/12/27 PHP
深入解读php中关于抽象(abstract)类和抽象方法的问题分析
2014/01/03 PHP
ThinkPHP CURD方法之where方法详解
2014/06/18 PHP
Laravel框架查询构造器简单示例
2019/05/08 PHP
加速IE的Javascript document输出的方法
2010/12/02 Javascript
Linux下为Node.js程序配置MySQL或Oracle数据库的方法
2016/03/19 Javascript
基于Node.js的JavaScript项目构建工具gulp的使用教程
2016/05/20 Javascript
jQuery 调用WebService 实例讲解
2016/06/28 Javascript
jQuery Easyui datagrid/treegrid 清空数据
2016/07/09 Javascript
AngularJS 中的事件详解
2016/07/28 Javascript
Vue.js表单控件实践
2016/10/27 Javascript
Mac下使用charles遇到的问题以及解决办法
2017/01/10 Javascript
jQuery树插件zTree使用方法详解
2017/05/02 jQuery
微信小程序 页面跳转事件绑定的实例详解
2017/09/20 Javascript
详解Vue基于vue-quill-editor富文本编辑器使用心得
2019/01/03 Javascript
javascript绘制简单钟表效果
2020/04/07 Javascript
[01:03:13]VG vs Pain 2018国际邀请赛小组赛BO2 第一场 8.18
2018/08/19 DOTA
[06:07]DOTA2-DPC中国联赛 正赛 Ehome vs VG 选手采访
2021/03/11 DOTA
[05:09]DOTA2-DPC中国联赛2月22日Recap集锦
2021/03/11 DOTA
flask + pymysql操作Mysql数据库的实例
2017/11/13 Python
python3+PyQt5图形项的自定义和交互 python3实现page Designer应用程序
2020/07/20 Python
Python实现的knn算法示例
2018/06/14 Python
python实现转盘效果 python实现轮盘抽奖游戏
2019/01/22 Python
python GUI库图形界面开发之PyQt5计数器控件QSpinBox详细使用方法与实例
2020/02/28 Python
python实现贪吃蛇双人大战
2020/04/18 Python
使用CSS3来绘制一个月食图案
2015/07/18 HTML / CSS
布鲁明戴尔百货店:Bloomingdale’s
2016/12/21 全球购物
百度软件工程师职位
2013/02/14 面试题
大学生学业生涯规划
2014/01/05 职场文书
经验丰富大学生村干部自我鉴定
2014/01/22 职场文书
接待员岗位责任制
2014/02/10 职场文书
小学校园文化建设汇报材料
2014/08/19 职场文书
模范教师事迹材料
2014/12/16 职场文书
综合实践活动报告
2015/02/05 职场文书
服装店员工管理制度
2015/08/07 职场文书
zabbix配置nginx监控的实现
2022/05/25 Servers