• 技术文章 >后端开发 >PHP问题

    php怎么查询老黄历

    青灯夜游青灯夜游2022-10-19 18:46:13原创180

    查询方法:1、开通老黄历接口服务,获取接口的调用凭证请求key;2、调用接口API发出请求,处理数据并返回结果;3、用“$response=juheHttpRequest($apiUrl, $paramsString,1);”获取接口返回内容;4、用“$result=json_decode($response,true);”将返回内容解析成数组;5、打印解析后的内容。

    php入门到就业线上直播课:进入学习

    本教程操作环境:windows7系统、PHP8.1版、DELL G3电脑

    基于PHP的老黄历接口调用示例

    前期准备

    接口说明

    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视频教程

    以上就是php怎么查询老黄历的详细内容,更多请关注php中文网其它相关文章!

    声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn核实处理。

    前端(VUE)零基础到就业课程:点击学习

    清晰的学习路线+老师随时辅导答疑

    自己动手写 PHP MVC 框架:点击学习

    快速了解MVC架构、了解框架底层运行原理

    专题推荐:php
    上一篇:php怎么查询新闻头条 下一篇:自己动手写 PHP MVC 框架(40节精讲/巨细/新人进阶必看)

    相关文章推荐

    • ❤️‍🔥共22门课程,总价3725元,会员免费学• ❤️‍🔥接口自动化测试不想写代码?• php如何查询出来的结果• php 连接 oracle 乱码怎么办• php缓存具体是什么意思• php的curl无法开启怎么办• php函数怎么实现加减乘除• php pdo 错误处理怎么设置
    1/1

    PHP中文网