phpは中央気象台の範囲から全国をカバーする天気予報コードの例を採集した.

3525 ワード

本文の例は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プログラム設計に役立つことを願っています.