The php weather forecast code is collected from the Central Meteorological Observatory and covers the entire country
Weather information collected from the Central Meteorological Observatory, accurate information, wide coverage, the code is simple. Return json code can be used for client calls can also be displayed in the server-side processing, the author of the WordPress weather forecast plug-in is the use of this code Oh. 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 can be written
Author: freemouse
Homepage: www.cnphp.info
Interface demo: http://www.cnphp.info/tianqi
Usage: You can call the above address will display the local weather information, you can also use
http://www.cnphp.info/tianqi/?q= Nanjing City, Jiangsu Province
** /
$ 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");