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源代码
Aug 21 PHP
PHP 的异常处理、错误的抛出及回调函数等面向对象的错误处理方法
Dec 07 PHP
yii框架通过控制台命令创建定时任务示例
Apr 30 PHP
php代码审计比较有意思的例子
May 07 PHP
Yii不依赖Model的表单生成器用法实例
Dec 04 PHP
PHP的pcntl多进程用法实例
Mar 19 PHP
php将字符串随机分割成不同长度数组的方法
Jun 01 PHP
PHP函数nl2br()与自定义函数nl2p()换行用法分析
Apr 02 PHP
PHP常见的6个错误提示及解决方法
Jul 07 PHP
Laravel5.* 打印出执行的sql语句的方法
Jul 24 PHP
thinkphp中的多表关联查询的实例详解
Oct 12 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与SQL注入攻击[一]
2007/04/17 PHP
php在线生成ico文件的代码
2007/10/09 PHP
PHP利用二叉堆实现TopK-算法的方法详解
2017/04/24 PHP
PHP curl 或 file_get_contents 获取需要授权页面的方法
2017/05/05 PHP
php 提交表单 关闭layer弹窗iframe的实例讲解
2018/08/20 PHP
使用git迁移Laravel项目至新开发环境的步骤详解
2020/04/06 PHP
各情景下元素宽高的获取实现代码
2011/09/13 Javascript
『jQuery』.html(),.text()和.val()的概述及使用
2013/04/22 Javascript
js中的hasOwnProperty和isPrototypeOf方法使用实例
2014/06/06 Javascript
js实现仿Discuz文本框弹出层效果
2015/08/13 Javascript
js实现异步循环实现代码
2016/02/16 Javascript
node.js中 stream使用教程
2016/08/28 Javascript
省市区三级联动jquery实现代码
2020/04/15 Javascript
微信小程序(应用号)开发新闻客户端实例
2016/10/24 Javascript
angular双向绑定模拟探索
2016/12/26 Javascript
JavaScript实现购物车基本功能
2017/07/21 Javascript
AngularJS 事件发布机制
2018/08/28 Javascript
详解Js里的for…in和for…of的用法
2019/03/28 Javascript
Vue2(三)实现子菜单展开收缩,带动画效果实现方法
2019/04/28 Javascript
Vue路由之JWT身份认证的实现方法
2019/08/26 Javascript
解决vue页面渲染但dom没渲染的操作
2020/07/27 Javascript
[01:10]DOTA2次级职业联赛 - EP战队宣传片
2014/12/01 DOTA
python3.3教程之模拟百度登陆代码分享
2014/01/16 Python
python实现类的静态变量用法实例
2015/05/08 Python
python文件操作相关知识点总结整理
2016/02/22 Python
利用aardio给python编写图形界面
2017/08/21 Python
python把ipynb文件转换成pdf文件过程详解
2019/07/09 Python
Python将主机名转换为IP地址的方法
2019/08/14 Python
使用pytorch和torchtext进行文本分类的实例
2020/01/08 Python
python操作redis数据库的三种方法
2020/09/10 Python
Python 随机按键模拟2小时
2020/12/30 Python
Python try except finally资源回收的实现
2021/01/25 Python
服务型党组织建设典型材料
2014/05/07 职场文书
反邪教警示教育方案
2014/05/13 职场文书
公安四风对照检查材料思想汇报
2014/10/11 职场文书
新的CSS 伪类函数 :is() 和 :where()示例详解
2022/08/05 HTML / CSS