首页 > 编程 > PHP > 正文

php采集自中央气象台范围覆盖全国的天气预报代

2020-03-22 20:14:25
字体:
来源:转载
供稿:网友
本文实例讲述了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程序设计有所帮助。PHP教程

郑重声明:本文版权归原作者所有,转载文章仅为传播更多信息之目的,如作者信息标记有误,请第一时间联系我们修改或删除,多谢。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表