本文实例讲述了php采集自中央气象台范围覆盖全国的天气预报代码。分享给大家供大家参考。具体分析如下:
天气预报信息采集自中央气象台,信息准确,覆盖面广,代码简单,返回是json代码,可以用于客户端调用,也可以在服务器端处理后显示,笔者的wordpress天气预报插件就是使用的这段代码,需要注意的是,这段代码会在服务器产生缓存文件,需要在当前目录中新建data文件夹,保证文件夹可写.
php天气预报代码如下:
$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\");
本文地址:https://www.stayed.cn/item/9731
转载请注明出处。
本站部分内容来源于网络,如侵犯到您的权益,请 联系我