下面小編就為大家帶來一篇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 = '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介面查詢天氣功能的方法介紹的詳細內容。更多資訊請關注PHP中文網其他相關文章!