当前位置:首页 > PHP教程 > php高级应用 > 列表

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

发布:smiling 来源: PHP粉丝网  添加日期:2021-05-05 19:13:40 浏览: 评论:0 

这篇文章主要介绍了php采集自中央气象台范围覆盖全国的天气预报代码实例,较为详细的分析了采集的技巧及对应接口的调用技巧,具有一定参考借鉴价值,需要的朋友可以参考下

本文实例讲述了php采集自中央气象台范围覆盖全国的天气预报代码。分享给大家供大家参考。具体分析如下:

天气预报信息采集自中央气象台,信息准确,覆盖面广,代码简单,返回是json代码,可以用于客户端调用,也可以在服务器端处理后显示,笔者的wordpress天气预报插件就是使用的这段代码,需要注意的是,这段代码会在服务器产生缓存文件,需要在当前目录中新建data文件夹,保证文件夹可写.

php天气预报代码如下:

  1. /* 
  2. 作者:    freemouse 
  3. 主页:    www.cnphp.info 
  4. 接口demo: http://www.cnphp.info/tianqi 
  5. 用法: 可以直接调用上面的地址会显示当地的天气信息,也可以这样用 
  6. http://www.cnphp.info/tianqi/?q=江苏省南京市 
  7. **/ 
  8. $p = $_get['q'];  
  9. $k = 0;  
  10. $encoding = mb_detect_encoding($p);  
  11. if($encoding != "utf-8"){  
  12.         $p = mb_convert_encoding($p,"utf-8","gbk");  
  13. }  
  14. $p_arr = array(  
  15.        "01" => "北京",  
  16.       "02" => "上海",  
  17.       "03" => "天津",  
  18.       "04" => "重庆",  
  19.       "05" => "黑龙江",  
  20.       "06" => "吉林",  
  21.       "07" => "辽宁",  
  22.       "08" => "内蒙古",  
  23.       "09" => "河北",  
  24.       "10" => "山西",  
  25.       "11" => "陕西",  
  26.       "12" => "山东",  
  27.       "13" => "新疆",  
  28.       "14" => "西藏",  
  29.       "15" => "青海",  
  30.       "16" => "甘肃",  
  31.       "17" => "宁夏",  
  32.       "18" => "河南",  
  33.       "19" => "江苏",  
  34.       "20" => "湖北",  
  35.       "21" => "浙江",  
  36.       "22" => "安徽",  
  37.       "23" => "福建",  
  38.       "24" => "江西",  
  39.       "25" => "湖南",  
  40.       "26" => "贵州",  
  41.       "27" => "四川",  
  42.       "28" => "广东",  
  43.       "29" => "云南",  
  44.       "30" => "广西",  
  45.       "31" => "海南",  
  46.       "32" => "香港",  
  47.       "33" => "澳门",  
  48.       "34" => "台湾" 
  49. );  
  50.  
  51. function find(&$item,$key,$data){  
  52.         global $k;  
  53.         if(preg_match("/$item/u",$data)){  
  54.            $k = $key;  
  55.         }  
  56. }  
  57.  
  58. function get_data_arr($key){  
  59.         if(!file_exists("./data/city{$key}.xml")){  
  60.             $c =file_get_contents"http://m.weather.com.cn/data5/city{$key}.xml" );  
  61.             file_put_contents("./data/city{$key}.xml",$c);  
  62.         }  
  63.         else{  
  64.             $c = file_get_contents("./data/city{$key}.xml");  
  65.         }  
  66.        $arr = explode(",",$c);  
  67.        foreach($arr as $v){  
  68.            $data = explode("|",$v);  
  69.            $ret[$data[0]] = $data[1];  
  70.        } 
  71.        return $ret;  
  72. }  
  73.  
  74. array_walk($p_arr,'find',$p);  
  75. array_walk(get_data_arr($k),'find',$p);  
  76. array_walk(get_data_arr($k),'find',$p);  
  77. $ccode = get_data_arr($k);  
  78. echo file_get_contents("http://m.weather.com.cn/data/{$ccode[$k]}.html");

Tags: php采集天气预报

分享到: