天气预报查询接口api,在这里我使用的是国家气象局天气预报接口
使用较多的还有:新浪天气预报接口、百度天气预报接口、google天气接口、yahoo天气接口等等。
1、查询方式
根据地名查询各城市天气情况
2.请求url地址
http://route.showapi.com/9-2
3、接口参数说明:
一、系统级参数(所有接入点都需要的参数):
二、应用级参数(每个接入点有自己的参数):
4.返回参数
以json格式返回结果
1)系统级参数(所有接入点都会返回的参数)
2)应用级参数(系统级输出参数showapi_res_body字段中的json数据结构)
具体调用操作:
php中自带了处理json格式字符串的内置函数,下面做一个事例,并给出完整代码:
1
2
3
4
5
6
7
8
9
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
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
|
<?php
//查找淄博天气情况
//接口自带编写的数组
$showapi_appid = '46435' ; //替换此值,在官网的"我的应用"中找到相关值
$showapi_secret = '7c55aef4ede442ffa49b24c2c808e523' ; //替换此值,在官网的"我的应用"中找到相关值
$paramarr = array (
'showapi_appid' => $showapi_appid ,
'areaid' => "" ,
'area' => "淄博" ,
'needmoreday' => "" ,
'needindex' => "" ,
'needhourdata' => "" ,
'need3hourforcast' => "" ,
'needalarm' => ""
//添加其他参数
);
//创建参数(包括签名的处理)接口自带编写的数组
function createparam ( $paramarr , $showapi_secret ) {
$parastr = "" ;
$signstr = "" ;
ksort( $paramarr );
foreach ( $paramarr as $key => $val ) {
if ( $key != '' && $val != '' ) {
$signstr .= $key . $val ;
$parastr .= $key . '=' .urlencode( $val ). '&' ;
}
}
$signstr .= $showapi_secret ; //排好序的参数加上secret,进行md5
$sign = strtolower (md5( $signstr ));
$parastr .= 'showapi_sign=' . $sign ; //将md5后的值作为参数,便于服务器的效验
return $parastr ;
}
$param = createparam( $paramarr , $showapi_secret );
$url = 'http://route.showapi.com/9-2?' . $param ;
//获取json格式的数据
$result = file_get_contents ( $url );
//对json格式的字符串进行编码
$arr = (json_decode( $result ));
$v = $arr ->showapi_res_body; $attr = $v ->f1;
//所需要的数据进行调用
$arr1 = $attr ->day_weather;
$arr2 = $attr ->night_weather;
$arr3 = $attr ->night_air_temperature;
$arr4 = $attr ->day_air_temperature;
$arr5 = $attr ->day_wind_direction;
$arr6 = $attr ->night_weather_pic;
echo $arr6 ;
?>
//将所需要的数据添加到数据库
<?php
require_once "./dbda.class.php" ;
$db = new dbda();
$sql = "insert into weather values('','{$arr1}','{$arr2}')" ;
$arr = $db ->query( $sql );
?>
|
效果如图:
以上这篇php调用api接口实现天气查询功能的示例就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持服务器之家。
原文链接:http://www.cnblogs.com/jly144000/archive/2017/09/20/7563434.html