Rumah >pembangunan bahagian belakang >tutorial php >php调用API接口查询天气功能的方法介绍

php调用API接口查询天气功能的方法介绍

黄舟
黄舟asal
2017-09-21 09:05:562906semak imbas

下面小编就为大家带来一篇PHP调用API接口实现天气查询功能的示例。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧

天气预报查询接口API,在这里我使用的是国家气象局天气预报接口

使用较多的还有:新浪天气预报接口、百度天气预报接口、google天气接口、Yahoo天气接口等等。

1、查询方式

根据地名查询各城市天气情况

2.请求URL地址

http://route.showapi.com/9-2

3、接口参数说明:

一、系统级参数(所有接入点都需要的参数):

二、应用级参数(每个接入点有自己的参数):

4.返回参数

以JSON格式返回结果

1)系统级参数(所有接入点都会返回的参数)

2)应用级参数(系统级输出参数showapi_res_body字段中的json数据结构)

具体调用操作:

PHP中自带了处理json格式字符串的内置函数,下面做一个事例,并给出完整代码:


<?php
//查找淄博天气情况
//接口自带编写的数组
$showapi_appid = &#39;46435&#39;; //替换此值,在官网的"我的应用"中找到相关值
$showapi_secret = &#39;7c55aef4ede442ffa49b24c2c808e523&#39;; //替换此值,在官网的"我的应用"中找到相关值 
$paramArr = array(
   &#39;showapi_appid&#39;=> $showapi_appid,
   &#39;areaid&#39;=> "",
   &#39;area&#39;=> "淄博",
   &#39;needMoreDay&#39;=> "",
   &#39;needIndex&#39;=> "",
   &#39;needHourData&#39;=> "",
   &#39;need3HourForcast&#39;=> "",
   &#39;needAlarm&#39;=> ""
   //添加其他参数
);

//创建参数(包括签名的处理)接口自带编写的数组
function createParam ($paramArr,$showapi_secret) {
   $paraStr = "";
   $signStr = "";
   ksort($paramArr);
   foreach ($paramArr as $key => $val) {
     if ($key != &#39;&#39; && $val != &#39;&#39;) {
       $signStr .= $key.$val;
       $paraStr .= $key.&#39;=&#39;.urlencode($val).&#39;&&#39;;
     }
   }
   $signStr .= $showapi_secret;//排好序的参数加上secret,进行md5
   $sign = strtolower(md5($signStr));
   $paraStr .= &#39;showapi_sign=&#39;.$sign;//将md5后的值作为参数,便于服务器的效验
  
   return $paraStr;
}

$param = createParam($paramArr,$showapi_secret);
$url = &#39;http://route.showapi.com/9-2?&#39;.$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(&#39;&#39;,&#39;{$arr1}&#39;,&#39;{$arr2}&#39;)";
$arr = $db->query($sql);  
?>

效果如图:

Atas ialah kandungan terperinci php调用API接口查询天气功能的方法介绍. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel sebelumnya:第一篇文章Artikel seterusnya:php检测json格式是否正确的案例