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小型企业库存管理系统的设计与实现代码
May 16 PHP
在smarty中调用php内置函数的方法
Feb 07 PHP
php中OR与|| AND与&&的区别总结
Oct 26 PHP
PHP常用的缓存技术汇总
May 05 PHP
PHP闭包实例解析
Sep 08 PHP
浅析iis7.5安装配置php环境
May 10 PHP
以实例全面讲解PHP中多进程编程的相关函数的使用
Aug 18 PHP
FleaPHP框架数据库查询条件($conditions)写法总结
Mar 19 PHP
Yii2.0多文件上传实例说明
Jul 24 PHP
PHP实现的防止跨站和xss攻击代码【来自阿里云】
Jan 29 PHP
基于php双引号中访问数组元素报错的解决方法
Feb 01 PHP
PHP实现数组和对象的相互转换操作示例
Mar 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
我的论坛源代码(八)
2006/10/09 PHP
非常好的php目录导航文件代码
2006/10/09 PHP
执行、获取远程代码返回:file_get_contents 超时处理的问题详解
2013/06/25 PHP
Yii框架中使用PHPExcel的方法分析
2019/07/25 PHP
javascript 特性检测并非浏览器检测
2010/01/15 Javascript
javascript 浏览器检测代码精简版
2010/03/04 Javascript
Jquery设置attr的disabled属性控制某行显示或者隐藏
2014/09/25 Javascript
JQuery实现的购物车功能(可以减少或者添加商品并自动计算价格)
2015/01/13 Javascript
深入理解JavaScript中为什么string可以拥有方法
2016/05/24 Javascript
BootstrapTable请求数据时设置超时(timeout)的方法
2017/01/22 Javascript
jQuery插件FusionCharts实现的MSBar2D图效果示例【附demo源码】
2017/03/24 jQuery
JS实现的点击表头排序功能示例
2017/03/27 Javascript
jQuery条件分页 代替离线查询(附代码)
2017/08/17 jQuery
vue router 组件的高级应用实例代码
2019/04/08 Javascript
Flutter实现仿微信底部菜单栏功能
2019/09/18 Javascript
javascript(基于jQuery)实现鼠标获取选中的文字示例【测试可用】
2019/10/26 jQuery
vue-dplayer 视频播放器实例代码
2019/11/08 Javascript
JavaScript修改注册表实例代码
2020/01/05 Javascript
vue全局使用axios的操作
2020/09/08 Javascript
[22:59]VGJ.S vs VG 2018国际邀请赛小组赛BO2 第二场 8.16
2018/08/17 DOTA
使用Python标准库中的wave模块绘制乐谱的简单教程
2015/03/30 Python
python实现nao机器人身体躯干和腿部动作操作
2019/04/29 Python
python 读写excel文件操作示例【附源码下载】
2019/06/19 Python
浅谈Pandas Series 和 Numpy array中的相同点
2019/06/28 Python
numpy数组做图片拼接的实现(concatenate、vstack、hstack)
2019/11/08 Python
python Pexpect模块的使用
2020/12/25 Python
html5 Canvas画图教程(8)—canvas里画曲线之bezierCurveTo方法
2013/01/09 HTML / CSS
Canvas在超级玛丽游戏中的应用详解
2021/02/06 HTML / CSS
Monnier Freres中文官网:法国领先的奢侈品配饰在线零售商
2017/11/01 全球购物
俄罗斯最大的在线珠宝大卖场:Nebo
2019/12/08 全球购物
数学教学随笔感言
2014/02/17 职场文书
政府领导干部个人对照检查材料思想汇报
2014/09/24 职场文书
三好学生评语大全
2014/12/29 职场文书
庆七一主持词
2015/06/29 职场文书
Python+OpenCV实现在图像上绘制矩形
2022/03/21 Python
MySQL数据库安装方法与图形化管理工具介绍
2022/05/30 MySQL