php怎麼查詢老黃曆

2022-10-19 22:01:51

查詢方法: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、老黃曆—日曆介面:

請求引數

名稱必填型別說明
keyString在個人中心->我的資料,介面名稱上方檢視
dateString日期,格式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、老黃曆—時辰介面:

請求引數

名稱必填型別說明
keyString在個人中心->我的資料,介面名稱上方檢視
dateString日期,格式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其它相關文章!