標籤:查詢 介面 http 功能 into enc insert strong php
天氣預報查詢介面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介面實現天氣查詢功能