• 每天进步一点点!

文章分类

推荐网站

常用手册

中国天气预报网天气接口【原创】

<<返回

2012-03-12 13:51:54

今天项目中遇到个问题,要获取当天的天气信息。一开始打算调用google天气的接口,考虑到google随时可能被墙。所以改用了中国天气网(http://www.weather.com.cn/)的天气接口,据说这个比较准确。

中国天气网提供了几种可选的天气插件,可以参考:http://service.weather.com.cn/plugin/index.shtml

这些插件基本上能满足一般的需要,如果有特殊需要还可以自己定制插件。

这些插件使用也很简单,只要将你需要的插件的iframe代码嵌到你想要展示的网页位置即可。

 

下面介绍一下两个有用的天气数据接口:

第一个接口:http://m.weather.com.cn/data/101010100.html

 

其中101010100为城市id,附件中提供了所有的城市id。

 

这个接口返回一个城市未来七天(包括今天)的天气数据(json格式)。

可以使用PHP的json_decode将这个json串转换为数组,只需将json_decode的第二个参数设置为true

下面是我调用这个接口的代码:

$city_code = '101010100';
header("Content-Type: text/html; charset=UTF-8");
$weathe_url =  'http://m.weather.com.cn/data/' .$city_code. '.html';
		
$curl = curl_init();
curl_setopt($curl, CURLOPT_URL, $weathe_url);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1); 
$data = curl_exec($curl); 
		
$wather_array = json_decode($data, true);
print_r($wather_array);

输出:

Array
(
    [weatherinfo] => Array
        (
            [city] => 北京
            [city_en] => beijing
            [date_y] => 2012年3月11日
            [date] => 
            [week] => 星期日
            [fchh] => 18
            [cityid] => 101010100
            [temp1] => -6℃~9℃
            [temp2] => -3℃~13℃
            [temp3] => 0℃~12℃
            [temp4] => -2℃~9℃
            [temp5] => 2℃~11℃
            [temp6] => 2℃~9℃
            [tempF1] => 21.2℉~48.2℉
            [tempF2] => 26.6℉~55.4℉
            [tempF3] => 32℉~53.6℉
            [tempF4] => 28.4℉~48.2℉
            [tempF5] => 35.6℉~51.8℉
            [tempF6] => 35.6℉~48.2℉
            [weather1] => 晴
            [weather2] => 晴转多云
            [weather3] => 晴
            [weather4] => 多云
            [weather5] => 阴
            [weather6] => 多云
            [img1] => 0
            [img2] => 99
            [img3] => 0
            [img4] => 1
            [img5] => 0
            [img6] => 99
            [img7] => 1
            [img8] => 99
            [img9] => 2
            [img10] => 99
            [img11] => 1
            [img12] => 99
            [img_single] => 0
            [img_title1] => 晴
            [img_title2] => 晴
            [img_title3] => 晴
            [img_title4] => 多云
            [img_title5] => 晴
            [img_title6] => 晴
            [img_title7] => 多云
            [img_title8] => 多云
            [img_title9] => 阴
            [img_title10] => 阴
            [img_title11] => 多云
            [img_title12] => 多云
            [img_title_single] => 晴
            [wind1] => 微风
            [wind2] => 微风
            [wind3] => 微风
            [wind4] => 微风
            [wind5] => 微风
            [wind6] => 微风
            [fx1] => 微风
            [fx2] => 微风
            [fl1] => 小于3级
            [fl2] => 小于3级
            [fl3] => 小于3级
            [fl4] => 小于3级
            [fl5] => 小于3级
            [fl6] => 小于3级
            [index] => 凉
            [index_d] => 天气凉,建议着厚外套加毛衣等春秋服装。体弱者宜着大衣、呢外套。因昼夜温差较大,注意增减衣服。
            [index48] => 凉
            [index48_d] => 天气凉,建议着厚外套加毛衣等春秋服装。体弱者宜着大衣、呢外套。因昼夜温差较大,注意增减衣服。
            [index_uv] => 中等
            [index48_uv] => 弱
            [index_xc] => 适宜
            [index_tr] => 适宜
            [index_co] => 较舒适
            [st1] => 8
            [st2] => -4
            [st3] => 13
            [st4] => -1
            [st5] => 12
            [st6] => 1
            [index_cl] => 不宜
            [index_ls] => 基本适宜
            [index_ag] => 较易发
        )

)

下面是应用这些数据的代码:

$result = array(
  'city' =>$wather_array['weatherinfo']['city'],
  'date' => $wather_array['weatherinfo']['date_y'],
  'temp' =>$wather_array['weatherinfo']['temp1'],
  'weather' => $wather_array['weatherinfo']['weather1'],
  'img'=>'http://m.weather.com.cn/img/c' . $wather_array['weatherinfo']['img1']. '.gif',
  'wind' => $wather_array['weatherinfo']['wind1']
);

这段代码返回了今天的天气信息的数据。需要注意的是:图片的地址这时应该为绝对地址。

 

第二个有用的接口是:http://www.weather.com.cn/data/sk/101010100.html

该接口返回了实时的天气信息的json数据。

用json_decode转换为数组后的数据为:

Array
(
    [weatherinfo] => Array
        (
            [city] => 北京
            [cityid] => 101010100
            [temp] => 8
            [WD] => 西南风
            [WS] => 3级
            [SD] => 11%
            [WSE] => 3
            [time] => 14:30
            [isRadar] => 1
            [Radar] => JC_RADAR_AZ9010_JB
        )

)

附件:中国天气网城市代码

文章评论

  • 暂无评论

发表评论

昵称:

内容:

发表评论