查詢方法:1、開通老黃曆介面服務,獲取介面的呼叫憑證請求key;2、呼叫介面API發出請求,處理資料並返回結果;3、用「$response=juheHttpRequest($apiUrl, $paramsString,1);」獲取介面返回內容;4、用「$result=json_decode($response,true);」將返回內容解析成陣列;5、列印解析後的內容。
php入門到就業線上直播課:進入學習
Apipost = Postman + Swagger + Mock + Jmeter 超好用的API偵錯工具:
本教學操作環境:windows7系統、PHP8.1版、DELL G3電腦
基於PHP的老黃曆介面呼叫範例
前期準備
通過 https://www.juhe.cn/docs/api/id/65?s=cpphpcn
自助申請開通介面
獲取介面的呼叫憑證請求key
你可以在個人中心 ➡️ 資料中心 ➡️ 我的API 模組看到此介面的呼叫憑證請求key
介面說明
免費使用,根據會員等級不同,每日可呼叫次數不同,具體登入聚合資料官網檢視
提供老黃曆查詢,黃曆每日吉凶宜忌查詢
其他更詳細的介面使用資訊,登入聚合資料官網檢視,本文為簡單使用範例,僅供參考
1、老黃曆—日曆介面:
請求引數
名稱 | 必填 | 型別 | 說明 |
---|---|---|---|
key | 是 | String | 在個人中心->我的資料,介面名稱上方檢視 |
date | 是 | String | 日期,格式2020-11-20 |
程式碼範例
<?php
//請求的介面URL
$apiUrl = 'http://v.juhe.cn/laohuangli/d';
//請求引數
$params = [
//聚合資料上申請的介面呼叫key
'key' => '聚合資料上申請的介面呼叫key',
//要查詢的日期
'date' => '要查詢的日期'
];
//引數陣列轉換成字串
$paramsString = http_build_query($params);
//發起介面網路請求
$response = null;
try {
$response = juheHttpRequest($apiUrl, $paramsString, 1);
} catch (Exception $e) {
var_dump($e);
//此處根據自己的需求進行具體的例外處理
}
if (!$response) {
echo '請求異常' . PHP_EOL;
}
//接收介面返回內容
$result = json_decode($response, true);//獲取介面返回內容(json字串),並解析成陣列
if (!$result) {
echo '請求異常' . PHP_EOL;
}
$errorCode = $result['error_code'];
if ($errorCode == 0) {
$data = $result['result'];
} else {
echo "請求異常:{$errorCode}_{$result['reason']}" . PHP_EOL;
}
//列印介面返回結果
var_dump($result);
/**
* 發起網路請求函數
* @param String $url 請求的URL
* @param bool $params 請求的引數內容
* @param int $isPost 是否POST請求
* @return bool|string 返回內容
*/
function juheHttpRequest($url, $params = false, $isPost = 0)
{
$httpInfo = [];
$ch = curl_init();
curl_setopt($ch, CURLOPT_HTTP_VERSION, CURL_HTTP_VERSION_1_1);
curl_setopt($ch, CURLOPT_USERAGENT, 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/41.0.2272.118 Safari/537.36');
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 3);
curl_setopt($ch, CURLOPT_TIMEOUT, 12);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
if ($isPost) {
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, $params);
curl_setopt($ch, CURLOPT_URL, $url);
} else {
if ($params) {
curl_setopt($ch, CURLOPT_URL, $url . '?' . $params);
} else {
curl_setopt($ch, CURLOPT_URL, $url);
}
}
$reponse = curl_exec($ch);
if ($reponse === FALSE) {
// echo "cURL Error: ".curl_error($ch);
return false;
}
$httpCode = curl_getinfo($ch, CURLINFO_HTTP_CODE);
$httpInfo = array_merge($httpInfo, curl_getinfo($ch));
curl_close($ch);
return $reponse;
}
登入後複製
返回結果範例
array(3) {
["reason"]=>
string(9) "successed"
["result"]=>
array(10) {
["id"]=>
string(4) "3850"
["yangli"]=>
string(10) "2020-11-20"
["yinli"]=>
string(26) "庚子(鼠)年十月初六"
["wuxing"]=>
string(19) "爐中火 定執位"
["chongsha"]=>
string(20) "衝雞(辛酉)煞西"
["baiji"]=>
string(49) "丁不剃頭頭必生瘡 卯不穿井水泉不香"
["jishen"]=>
string(44) "陰德 民日 三合 時陰 五合 鳴犬對"
["yi"]=>
string(145) "祭祀 祈福 訂盟 納采 裁衣 拆卸 修造 動土 起基 安床 移徙 入宅 安香 入殮 移柩 安葬 謝土 赴任 進人口 會親友"
["xiongshen"]=>
string(6) "元武"
["ji"]=>
string(13) "作灶 治病"
}
["error_code"]=>
int(0)
}
登入後複製
2、老黃曆—時辰介面:
請求引數
名稱 | 必填 | 型別 | 說明 |
---|---|---|---|
key | 是 | String | 在個人中心->我的資料,介面名稱上方檢視 |
date | 是 | String | 日期,格式2020-11-20 |
程式碼範例
<?php
//請求的介面URL
$apiUrl = 'http://v.juhe.cn/laohuangli/h';
//請求引數
$params = [
//聚合資料上申請的介面呼叫key
'key' => '聚合資料上申請的介面呼叫key',
//要查詢的日期
'date' => '要查詢的日期'
];
//引數陣列轉換成字串
$paramsString = http_build_query($params);
//發起介面網路請求
$response = null;
try {
$response = juheHttpRequest($apiUrl, $paramsString, 1);
} catch (Exception $e) {
var_dump($e);
//此處根據自己的需求進行具體的例外處理
}
if (!$response) {
echo '請求異常' . PHP_EOL;
}
//接收介面返回內容
$result = json_decode($response, true);
if (!$result) {
echo '請求異常' . PHP_EOL;
}
$errorCode = $result['error_code'];
if ($errorCode == 0) {
$data = $result['result'];
} else {
echo "請求異常:{$errorCode}_{$result['reason']}" . PHP_EOL;
}
//列印介面返回結果
var_dump($result);
/**
* 發起網路請求函數
* @param String $url 請求的URL
* @param bool $params 請求的引數內容
* @param int $isPost 是否POST請求
* @return bool|string 返回內容
*/
function juheHttpRequest($url, $params = false, $isPost = 0)
{
$httpInfo = [];
$ch = curl_init();
curl_setopt($ch, CURLOPT_HTTP_VERSION, CURL_HTTP_VERSION_1_1);
curl_setopt($ch, CURLOPT_USERAGENT, 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/41.0.2272.118 Safari/537.36');
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 3);
curl_setopt($ch, CURLOPT_TIMEOUT, 12);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
if ($isPost) {
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, $params);
curl_setopt($ch, CURLOPT_URL, $url);
} else {
if ($params) {
curl_setopt($ch, CURLOPT_URL, $url . '?' . $params);
} else {
curl_setopt($ch, CURLOPT_URL, $url);
}
}
$reponse = curl_exec($ch);
if ($reponse === FALSE) {
// echo "cURL Error: ".curl_error($ch);
return false;
}
$httpCode = curl_getinfo($ch, CURLINFO_HTTP_CODE);
$httpInfo = array_merge($httpInfo, curl_getinfo($ch));
curl_close($ch);
return $reponse;
}
登入後複製
返回結果範例
array(3) {
["reason"]=>
string(9) "successed"
["result"]=>
array(12) {
[0]=>
array(5) {
["yangli"]=>
string(10) "2020-11-20"
["hours"]=>
string(3) "1-3"
["des"]=>
string(54) "衝猴 煞北 時衝丙申 路空 大退 青龍 國印"
["yi"]=>
string(20) "赴任 出行 修造"
["ji"]=>
string(80) " 見貴 求財 嫁娶 進人口 移徙 安葬 祭祀 祈福 求嗣 齋醮 訂婚"
}
[1]=>
array(5) {
["yangli"]=>
string(10) "2020-11-20"
["hours"]=>
string(3) "3-5"
["des"]=>
string(54) "衝豬 煞東 時衝己亥 朱雀 帝旺 進祿 驛馬"
["yi"]=>
string(41) "祭祀 祈福 齋醮 開光 赴任 出行"
["ji"]=>
string(63) " 訂婚 嫁娶 安床 移徙 入宅 修造 安葬 求財 見貴"
}
[2]=>
array(5) {
["yangli"]=>
string(10) "2020-11-20"
["hours"]=>
string(3) "5-7"
["des"]=>
string(54) "衝狗 煞南 時衝戊戍 不遇 天刑 日害 武曲"
["yi"]=>
string(34) "作灶 祭祀 祈福 齋醮 酬神"
["ji"]=>
string(28) " 赴任 出行 修造 動土"
}
[3]=>
array(5) {
["yangli"]=>
string(10) "2020-11-20"
["hours"]=>
string(3) "7-9"
["des"]=>
string(47) "衝馬 煞南 時衝甲午 日刑 地兵 司命"
["yi"]=>
string(0) ""
["ji"]=>
string(34) "作灶 祭祀 祈福 齋醮 酬神"
}
[4]=>
array(5) {
["yangli"]=>
string(10) "2020-11-20"
["hours"]=>
string(4) "9-11"
["des"]=>
string(54) "衝羊 煞東 時衝乙未 勾陳 唐符 武曲 水星"
["yi"]=>
string(0) ""
["ji"]=>
string(69) "修造 蓋屋 移徙 作灶 安床 入宅 開市 求嗣 訂婚 嫁娶"
}
[5]=>
array(5) {
["yangli"]=>
string(10) "2020-11-20"
["hours"]=>
string(5) "11-13"
["des"]=>
string(55) " 衝鼠 煞北 時衝庚子 地兵 喜神 日祿 金匱"
["yi"]=>
string(69) "祈福 求嗣 訂婚 嫁娶 出行 求財 開市 交易 安床 赴任"
["ji"]=>
string(13) "修造 動土"
}
[6]=>
array(5) {
["yangli"]=>
string(10) "2020-11-20"
["hours"]=>
string(5) "13-15"
["des"]=>
string(55) " 衝牛 煞西 時衝辛丑 三合 天赦 天德 寶光"
["yi"]=>
string(90) "祈福 求嗣 訂婚 嫁娶 出行 求財 開市 交易 安床 修造 入宅 安葬 祭祀"
["ji"]=>
string(1) "-"
}
[7]=>
array(5) {
["yangli"]=>
string(10) "2020-11-20"
["hours"]=>
string(5) "15-17"
["des"]=>
string(55) " 衝虎 煞南 時衝壬寅 六戊 白虎 太陽 功曹"
["yi"]=>
string(41) "入宅 修造 安葬 祭祀 齋醮 酬神"
["ji"]=>
string(59) "祈福 求嗣 白虎鬚用 麒麟符制 否則 諸事不宜"
}
[8]=>
array(5) {
["yangli"]=>
string(10) "2020-11-20"
["hours"]=>
string(5) "17-19"
["des"]=>
string(34) " 衝兔 煞東 時衝癸卯 日破"
["yi"]=>
string(1) "-"
["ji"]=>
string(25) "日時相沖 諸事不宜"
}
[9]=>
array(5) {
["yangli"]=>
string(10) "2020-11-20"
["hours"]=>
string(5) "19-21"
["des"]=>
string(55) " 衝龍 煞北 時衝甲辰 天牢 地兵 六合 右弼"
["yi"]=>
string(62) "祈福 求嗣 訂婚 嫁娶 求財 開市 交易 安床 見貴"
["ji"]=>
string(34) "赴任 修造 移徙 出行 詞訟"
}
[10]=>
array(5) {
["yangli"]=>
string(10) "2020-11-20"
["hours"]=>
string(5) "21-23"
["des"]=>
string(55) " 衝蛇 煞西 時衝乙已 元武 三合 貴人 左輔"
["yi"]=>
string(69) "祈福 求嗣 訂婚 嫁娶 求財 開市 交易 安床 祭祀 見貴"
["ji"]=>
string(27) "赴任 出行 修造 動土"
}
[11]=>
array(5) {
["yangli"]=>
string(10) "2020-11-20"
["hours"]=>
string(4) "23-1"
["des"]=>
string(54) "衝雞 煞西 時衝丁酉 路空 明堂 進貴 木星"
["yi"]=>
string(97) "求嗣 嫁娶 移徙 入宅 開市 交易 修造 安葬 祈福 訂婚 赴任 出行 見貴 求財"
["ji"]=>
string(46) " 朱雀須用 鳳凰符制 否則 諸事不宜"
}
}
["error_code"]=>
int(0)
}
登入後複製
推薦學習:《》
以上就是php怎麼查詢老黃曆的詳細內容,更多請關注TW511.COM其它相關文章!