php采集自中央氣象臺范圍覆蓋全國的天氣預報代碼實例

字號:


    這篇文章主要介紹了php采集自中央氣象臺范圍覆蓋全國的天氣預報代碼實例,較為詳細的分析了采集的技巧及對應接口的調用技巧,具有一定參考借鑒價值,需要的朋友可以參考下
    本文實例講述了php采集自中央氣象臺范圍覆蓋全國的天氣預報代碼。分享給大家供大家參考。具體分析如下:
    天氣預報信息采集自中央氣象臺,信息準確,覆蓋面廣,代碼簡單,返回是json代碼,可以用于客戶端調用,也可以在服務器端處理后顯示,筆者的wordpress天氣預報插件就是使用的這段代碼,需要注意的是,這段代碼會在服務器產(chǎn)生緩存文件,需要在當前目錄中新建data文件夾,保證文件夾可寫.
    php天氣預報代碼如下:
    代碼如下:
    /*
    作者: freemouse
    主頁:
    接口demo:
    用法: 可以直接調用上面的地址會顯示當?shù)氐奶鞖庑畔ⅲ部梢赃@樣用
    =江蘇省南京市
    **/
    $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" => "內(nèi)蒙古",
    "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( "" );
    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("");
    希望本文所述對大家的php程序設計有所幫助。