首頁  >  文章  >  後端開發  >  php呼叫API介面查詢天氣功能的方法介紹

php呼叫API介面查詢天氣功能的方法介紹

黄舟
黄舟原創
2017-09-21 09:05:562857瀏覽

下面小編就為大家帶來一篇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);  
?>

效果如圖:

#

以上是php呼叫API介面查詢天氣功能的方法介紹的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
上一篇:第一篇文章下一篇:第一篇文章