天气预报信息采集自中央气象台,信息准确,覆盖面广,代码简单,返回是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" => "台湾"
);?PHP实例
function find(&$item,$key,$data){?
??????? global $k;?
??????? if(preg_match("/$item/u",$data)){?
?????????? $k = $key;?
??????? }?
}?PHP实例
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;?
}?PHP实例
array_walk($p_arr,'find',$p);?
array_walk(get_data_arr($k),$p);?
$ccode = get_data_arr($k);?
echo file_get_contents("http://m.weather.com.cn/data/{$ccode[$k]}.html");PHP实例
希望本文所述对大家的php程序设计有所赞助.PHP实例