找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 1262|回复: 0
打印 上一主题 下一主题

php采集自中央气象台范围覆盖全国的天气预报代码实例

[复制链接]

2536

主题

2536

帖子

7532

积分

论坛元老

Rank: 8Rank: 8

积分
7532
跳转到指定楼层
楼主
发表于 2018-2-14 05:50:38 | 只看该作者 回帖奖励 |正序浏览 |阅读模式

            本文实例讲述了php采集自中央气象台范围覆盖全国的天气预报代码。分享给大家供大家参考。具体分析如下:
天气预报信息采集自中央气象台,信息准确,覆盖面广,代码简单,返回是json代码,可以用于客户端调用,也可以在服务器端处理后显示,笔者的wordpress天气预报插件就是使用的这段代码,需要注意的是,这段代码会在服务器产生缓存文件,需要在当前目录中新建data文件夹,保证文件夹可写.
php天气预报代码如下:
[U]复制代码[/U] 代码如下:/*
作者:    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+AJAX无刷新实现返回天气预报数据
  • php使用百度天气接口示例
  • php实现的百度搜索某地天气的小偷代码
  • PHP实现采集中国天气网未来7天天气
  • PHP微信开发之查询城市天气
  • PHP Ajax JavaScript Json获取天气信息实现代码
  • php微信开发之百度天气预报
  • PHP 获取指定地区的天气实例代码
            
  • 分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
    收藏收藏
    回复

    使用道具 举报

    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    用户反馈
    客户端