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 相关文章推荐
main.php
Dec 09 PHP
PHP生成UTF8文件的方法
May 15 PHP
php删除与复制文件夹及其文件夹下所有文件的实现代码
Jan 23 PHP
php preg_replace替换实例讲解
Nov 04 PHP
destoon之一键登录设置
Jun 21 PHP
PHP实现获取域名的方法小结
Nov 05 PHP
php导出csv文件,可导出前导0实例代码
Nov 16 PHP
详解PHP发送邮件知识点
May 06 PHP
作为PHP程序员你要知道的另外一种日志
Jul 30 PHP
PHP实现的多进程控制demo示例
Jul 22 PHP
laravel 解决Validator使用中出现的问题
Oct 25 PHP
php屏蔽错误及提示的方法
May 10 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
《星际争霸》各版本雷兽特点图文解析 雷兽不同形态一览
2020/03/02 星际争霸
基于OpenCV的PHP图像人脸识别技术
2009/10/11 PHP
PHP版网站缓存加快打开速度的方法分享
2012/06/03 PHP
php用正则表达式匹配URL的简单方法
2013/11/12 PHP
php获取文件类型和文件信息的方法
2015/07/10 PHP
laravel实现登录时监听事件,添加登录用户的记录方法
2019/09/30 PHP
phpfpm的作用和用法
2019/10/10 PHP
出现“不能执行已释放的Script代码”错误的原因及解决办法
2007/08/29 Javascript
jquery的Theme和Theme Switcher使用小结
2010/09/08 Javascript
有趣的JavaScript数组长度问题代码说明
2011/01/20 Javascript
jQuery图片的展开和收缩实现代码
2013/04/16 Javascript
解析javascript 实用函数的使用详解
2013/05/10 Javascript
jquery预览图片实现鼠标放上去显示实际大小
2014/01/16 Javascript
$.each与$().each的区别示例介绍
2014/03/20 Javascript
JavaScript调用传递变量参数的相关问题及解决办法
2015/11/01 Javascript
bootstrap实现弹窗和拖动效果
2016/01/03 Javascript
js无提示关闭浏览器窗口的两种方法分析
2016/11/06 Javascript
详解angular用$sce服务来过滤HTML标签
2017/04/11 Javascript
关于foreach循环中遇到的问题小结
2017/05/08 Javascript
快速解决Vue项目在IE浏览器中显示空白的问题
2018/09/04 Javascript
用Cordova打包Vue项目的方法步骤
2019/02/02 Javascript
浅谈Vue的响应式原理
2019/05/30 Javascript
小程序中canvas的drawImage方法参数使用详解
2019/07/04 Javascript
JS+html5实现异步上传图片显示上传文件进度条功能示例
2019/11/09 Javascript
Python实现控制台输入密码的方法
2015/05/29 Python
在Python中Dataframe通过print输出多行时显示省略号的实例
2018/12/22 Python
Python hashlib常见摘要算法详解
2020/01/13 Python
C# .NET面试题
2015/11/28 面试题
介绍一下Mysql的存储引擎
2015/02/12 面试题
玩具公司的创业计划书
2013/12/31 职场文书
趣味运动会活动方案
2014/02/12 职场文书
培训专员岗位职责
2014/02/26 职场文书
大学生工作求职信
2014/06/23 职场文书
社区党的群众路线教育实践活动领导班子对照检查材料
2014/09/25 职场文书
Nginx 路由转发和反向代理location配置实现
2021/11/11 Servers
Python使用永中文档转换服务
2022/05/06 Python