Home > Article > Backend Development > PHP collected weather forecast code examples covering the whole country from the Central Meteorological Observatory_PHP Tutorial
This article mainly introduces examples of weather forecast codes collected by php from the Central Meteorological Observatory covering the whole country in more detail. It analyzes the collection techniques and the calling techniques of the corresponding interfaces, which has certain reference value. Friends in need can refer to it
The example in this article describes the weather forecast code collected by PHP from the Central Meteorological Observatory covering the whole country. Share it with everyone for your reference. The specific analysis is as follows:
Weather forecast information is collected from the Central Meteorological Observatory. The information is accurate, wide coverage, and the code is simple. The return is json code, which can be used for client calls or displayed after processing on the server side. The author's WordPress weather forecast plug-in is used Please note that this code will generate a cache file on the server. You need to create a new data folder in the current directory to ensure that the folder is writable.
php weather forecast code is as follows:
The code is as follows:
$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" => "Beijing",
"02" => "Shanghai",
"03" => "Tianjin",
"04" => "Chongqing",
"05" => "Heilongjiang",
"06" => "Jilin",
"07" => "Liaoning",
"08" => "Inner Mongolia",
"09" => "Hebei",
"10" => "Shanxi",
"11" => "Shaanxi",
"12" => "Shandong",
"13" => "Xinjiang",
"14" => "Tibet",
"15" => "Qinghai",
"16" => "Gansu",
"17" => "Ningxia",
"18" => "Henan",
"19" => "Jiangsu",
"20" => "Hubei",
"21" => "Zhejiang",
"22" => "Anhui",
"23" => "Fujian",
"24" => "Jiangxi",
"25" => "Hunan",
"26" => "Guizhou",
"27" => "Sichuan",
"28" => "Guangdong",
"29" => "Yunnan",
"30" => "Guangxi",
"31" => "Hainan",
"32" => "Hong Kong",
"33" => "Macau",
"34" => "Taiwan"
);
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");
I hope this article will be helpful to everyone’s PHP programming design.