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