首頁 後端開發 php教程 新浪,腾讯,淘宝登陆_PHP教程

新浪,腾讯,淘宝登陆_PHP教程

Jul 20, 2016 am 11:13 AM
c code login response state type url 可以 新浪 淘寶 登陸 騰訊

可以直接拿去用了

<?<span php
</span><span session_start</span><span ();
</span><span class</span><span  openlogin{
        
        </span><span public</span> <span $_URL</span> = ""<span ;
        
        </span><span public</span> <span $config</span>    =    <span array</span><span ();

        </span><span public</span> <span function</span><span  __construct(){
            </span><span $this</span>-><span openlogin();
        }
        </span><span function</span><span  openlogin(){    

        }

        </span><span /*</span><span 获取登陆页面URL</span><span */</span>
        <span public</span> <span function</span><span  login_url(){
            
            </span><span if</span>(<span empty</span>(<span $this</span>-><span config)){
                </span><span return</span> <span false</span><span ; 
            }
            
            </span><span $config</span> = <span $this</span>-><span config;
            </span><span $login_url</span>    =    <span $config</span>['login_url'<span ];
            </span><span $_SESSION</span>['state'] = <span $state</span> = <span md5</span>(<span uniqid</span>(<span rand</span>(), <span TRUE</span><span ));
            </span><span $array</span> = <span array</span><span (
                </span>"response_type"=>"code",
                "state"    =>    <span $state</span>,
                "client_id"=><span $config</span>['appkey'],
                "redirect_uri"=><span urlencode</span>( <span $config</span>['redirect_uri'<span ] )
            );

            </span><span $this</span>->set(<span $array</span><span );

            </span><span $url</span>    =  <span $this</span>->combineURL(<span $login_url</span> , <span $this</span>-><span _param);

            </span><span if</span>(<span $url</span><span ){
                @</span><span header</span>("Location:".<span $url</span><span );
            }</span><span else</span><span {
                </span><span return</span> <span false</span><span ;
            }
        }

        </span><span /*</span><span 获取access_token</span><span */</span>
        <span public</span> <span function</span><span  get_access_token(){
            </span><span if</span>(<span empty</span>(<span $this</span>-><span config)){
                </span><span return</span> <span false</span><span ; 
            }

            </span><span $config</span> = <span $this</span>-><span config;

            </span><span if</span>(! <span $config</span>['code'] = <span $_REQUEST</span>['code'<span ] ){
                </span><span return</span> <span false</span><span ;
            }

            </span><span $url</span>    =    <span $config</span>['authorization_url'<span ];
            </span><span $state</span>    =    <span $_SESSION</span>['state'<span ];
            </span><span $array</span> = <span array</span><span (
                </span>"grant_type"=>"authorization_code",
                "client_id"    =>    <span $config</span>['appkey'],
                "client_secret"=><span $config</span>['appsecret'],
                "code"=><span $config</span>['code'],
                "redirect_uri"=><span urlencode</span>( <span $config</span>['redirect_uri'] ),
                "state"=><span $state</span><span 
            );
            </span><span $this</span>->set(<span $array</span><span );
            </span><span return</span>  <span $this</span>->post_contents(<span $url</span><span );
        }        
    
    
        
        </span><span /*</span><span  set $this->_param 数组</span><span */</span>
        <span public</span> <span function</span> set(<span $array</span><span ) {
            </span><span if</span>(<span empty</span>(<span $array</span><span )){
                </span><span return</span> <span false</span><span ;
            }
            </span><span $this</span>->_param = <span array</span><span ();
            </span><span foreach</span>(<span $array</span>  <span as</span> <span $name</span>=><span $value</span><span ){
                </span><span $this</span>->_param[<span $name</span>] = <span $value</span><span ;
            }
        }
        </span><span /*</span><span *
         * post_contents
         * 服务器通过post请求获得内容
         * @param string $url       请求的url,拼接后的
         * @return string           请求返回的内容
         </span><span */</span>
        <span public</span> <span function</span> post_contents(<span $url</span><span ){
            </span><span if</span>(<span empty</span>(<span $url</span><span )){
                </span><span return</span> <span false</span><span ;
            }
            </span><span $param</span>    = <span $this</span>->combineURL("" , <span $this</span>-><span _param);
            </span><span $ch</span> =<span  curl_init();
            </span><span //</span><span  设置URL和相应的选项</span>
            curl_setopt(<span $ch</span>, CURLOPT_URL, <span $url</span><span );    
            curl_setopt(</span><span $ch</span>, CURLOPT_FAILONERROR, <span false</span><span );
            curl_setopt(</span><span $ch</span>, CURLOPT_RETURNTRANSFER, <span true</span><span );
            curl_setopt (</span><span $ch</span>, CURLOPT_SSL_VERIFYPEER, 0<span );  
             curl_setopt (</span><span $ch</span>, CURLOPT_SSL_VERIFYHOST, 0<span ); 
            curl_setopt(</span><span $ch</span>, CURLOPT_POST, 1<span );
            curl_setopt(</span><span $ch</span>, CURLOPT_POSTFIELDS, <span $param</span><span );            
            </span><span //</span><span  抓取URL并把它传递给浏览器</span>
            <span $reponse</span> = curl_exec(<span $ch</span><span );            
            curl_close(</span><span $ch</span><span );
            </span><span return</span> <span $reponse</span><span ;
            
        }
        
        </span><span /*</span><span *
         * get_contents
         * 服务器通过get请求获得内容
         * @param string $url       请求的url,拼接后的
         * @return string           请求返回的内容
         </span><span */</span>
        <span public</span> <span function</span> get_contents(<span $url</span><span ){
                </span><span $ch</span> =<span  curl_init();
                curl_setopt(</span><span $ch</span>, CURLOPT_SSL_VERIFYPEER, <span FALSE</span><span );
                curl_setopt(</span><span $ch</span>, CURLOPT_RETURNTRANSFER, <span TRUE</span><span );
                curl_setopt(</span><span $ch</span>, CURLOPT_URL, <span $url</span><span );
                </span><span $response</span> =  curl_exec(<span $ch</span><span );
                curl_close(</span><span $ch</span><span );

            </span><span //</span><span -------请求为空</span>
            <span if</span>(<span empty</span>(<span $response</span><span )){
                </span><span return</span> <span false</span><span ;
            }

            </span><span return</span> <span $response</span><span ;
        }

        </span><span /*</span><span *
             * combineURL
             * 拼接url
             * @param string $baseURL   基于的url
             * @param array  $keysArr   参数列表数组
             * @return string           返回拼接的url
             </span><span */</span>
        <span public</span> <span function</span> combineURL(<span $baseURL</span>,<span $keysArr</span><span ){
            </span><span if</span>( <span $baseURL</span>==""<span  ){
                </span><span $combined</span>    =    ""<span ;
            }</span><span else</span><span {
                </span><span $combined</span> = <span $baseURL</span>."?"<span ;
            }
            </span><span $valueArr</span> = <span array</span><span ();

            </span><span foreach</span>(<span $keysArr</span> <span as</span> <span $key</span> => <span $val</span><span ){
                </span><span $valueArr</span>[] = "<span $key</span>=<span $val</span>"<span ;
            }

            </span><span $keyStr</span> = <span implode</span>("&",<span $valueArr</span><span );
            </span><span $combined</span> .= (<span $keyStr</span><span );
            
            </span><span return</span> <span $combined</span><span ;
        }
        
}


</span><span class</span> qq_openlogin <span extends</span><span  openlogin{
    </span><span private</span> <span $openname</span>    =    "qq"<span ;
    </span><span public</span> <span $config</span> = <span array</span><span (
                </span>"appkey"=>"your appkey",
                "appsecret"=>"your appsecret",
                "redirect_uri"=>"XXXXX",
                "login_url" => "https://graph.qq.com/oauth2.0/authorize",    
                "scope"=>"get_user_info,add_share,list_album,add_album,upload_pic,add_topic,add_one_blog,add_weibo,check_page_fans,add_t,add_pic_t,del_t,get_repost_list,get_info,get_other_info,get_fanslist,get_idolist,add_idol,del_idol,get_tenpay_addr",
                "authorization_url"=>"https://graph.qq.com/oauth2.0/token"<span 
            );

    </span><span function</span><span  __construct()
    {
        </span><span $this</span>-><span qq_openlogin();
    }
    
    </span><span function</span><span  qq_openlogin(){
        parent</span>::<span __construct();
    }


    </span><span function</span><span  get_access_token(){
        </span><span $response</span>    =    parent::<span get_access_token();
        
        </span><span /*</span><span 检测错误是否发生</span><span */</span>
        <span if</span>(<span strpos</span>(<span $response</span>, "callback") !== <span false</span><span ){

            </span><span $lpos</span> = <span strpos</span>(<span $response</span>, "("<span );
            </span><span $rpos</span> = <span strrpos</span>(<span $response</span>, ")"<span );
            </span><span $response</span>  = <span substr</span>(<span $response</span>, <span $lpos</span> + 1, <span $rpos</span> - <span $lpos</span> -1<span );
            </span><span $msg</span> = json_decode(<span $response</span><span );

            </span><span if</span>(<span isset</span>(<span $msg</span>-><span error)){
                </span><span return</span> <span false</span><span ;
            }
        }

        </span><span $params</span> = <span array</span><span ();
        </span><span parse_str</span>(<span $response</span>, <span $params</span><span );
        </span><span /*</span><span access_token == $params[access_token]</span><span */</span>
        
        <span /*</span><span 获取 openid </span><span */</span>
        <span $response</span>    =    <span $this</span>->get_contents("https://graph.qq.com/oauth2.0/me?access_token=".<span $params</span>['access_token'<span ]);

        </span><span //</span><span --------检测错误是否发生</span>
        <span if</span>(<span strpos</span>(<span $response</span>, "callback") !== <span false</span><span ){

            </span><span $lpos</span> = <span strpos</span>(<span $response</span>, "("<span );
            </span><span $rpos</span> = <span strrpos</span>(<span $response</span>, ")"<span );
            </span><span $response</span> = <span substr</span>(<span $response</span>, <span $lpos</span> + 1, <span $rpos</span> - <span $lpos</span> -1<span );
        }

        </span><span $user</span> = json_decode(<span $response</span><span );
        </span><span if</span>(<span isset</span>(<span $user</span>-><span error)){
            </span><span return</span> <span false</span><span ;
        }

        </span><span /*</span><span 
            获取用户信息需要参数:openid(用户的ID,与QQ号码一一对应),access_token(可通过使用Authorization_Code获取Access_Token 或来获取access_token有3个月有效期),oauth_consumer_key(用户appid),format(返回格式) 
                
        </span><span */</span>
        <span /*</span><span 数据库保存</span><span */</span>
        <span $open_param</span>    =    <span array</span><span (
            </span>"openid"=><span $user</span>->openid,
            "access_token"=><span $params</span>['access_token'<span ]
        );
        </span><span //
</span>        <span $open_param</span>['oauth_consumer_key']    =    <span $this</span>->config['appkey'<span ];
        </span><span $open_param</span>['format']                =    "json"<span ;
        </span><span /*</span><span 拼接url</span><span */</span>
        <span $get_user_url</span> = <span $this</span>->combineURL("https://graph.qq.com/user/get_user_info",<span $open_param</span><span );
        </span><span //</span><span 猎取用户信息</span>
        <span $userinfo</span>    =    <span $this</span>->get_contents(<span $get_user_url</span><span );        

        </span><span $userinfo</span>    =    json_decode(<span $userinfo</span><span );

        </span><span return</span> <span $userinfo</span><span ;        
    }
}

</span><span class</span> weibo_openlogin <span extends</span><span  openlogin{
    </span><span private</span> <span $openname</span>    =    "weibo"<span ;
    </span><span public</span> <span $config</span> = <span array</span><span (
                </span>"appkey"=>"your appkey",
                "appsecret"=>"your appsecret",
                "login_url"    =>    "https://api.weibo.com/oauth2/authorize",
                "redirect_uri"=>"XXXXXXX",
                "authorization_url"=>"https://api.weibo.com/oauth2/access_token"<span 
            );

    </span><span function</span><span  __construct()
    {
        </span><span $this</span>-><span qq_openlogin();
    }
    
    </span><span function</span><span  qq_openlogin(){
        parent</span>::<span __construct();
    }

    </span><span function</span><span  get_access_token(){
        </span><span $response</span>    =    parent::<span get_access_token();

        </span><span $userinfo</span> = json_decode(<span $response</span><span );

        </span><span return</span> <span $userinfo</span><span ;
    }

}

</span><span class</span> taobao_openlogin <span extends</span><span  openlogin{
    </span><span private</span> <span $openname</span>    =    "taobao"<span ;
    </span><span public</span> <span $config</span> = <span array</span><span (
                </span>"appkey"=>"your appkey",
                "appsecret"=>"your appsecret",
                "redirect_uri"=>"XXXXX",
                "authorization_url"=>"https://oauth.taobao.com/token",
                "login_url"=>"https://oauth.taobao.com/authorize"<span 
            );

    </span><span function</span><span  __construct()
    {
        </span><span $this</span>-><span qq_openlogin();
    }
    
    </span><span function</span><span  qq_openlogin(){
        parent</span>::<span __construct();
    }

    </span><span function</span><span  get_access_token(){
        </span><span $response</span>    =    parent::<span get_access_token();

        </span><span $userinfo</span> = json_decode(<span $response</span><span );

        </span><span return</span> <span $userinfo</span><span ;
    }

}




</span><span if</span>(<span $_GET</span>['openname'<span ]){
    </span><span $openname</span>    =    <span $_GET</span>['openname']."_openlogin"<span ;
    </span><span $openlogin</span>    = <span new</span> <span $openname</span><span ();
    </span><span if</span>(!<span isset</span>(<span $_REQUEST</span>['code'<span ])){        
        </span><span //</span><span 请求url</span>
        <span $url</span> = <span $openlogin</span>-><span login_url();
        </span><span if</span>(!<span $url</span><span ){
            </span><span echo</span> "0"<span ;
            </span><span exit</span><span ();
        }
    }</span><span else</span><span {
        </span><span if</span>(<span isset</span>(<span $_REQUEST</span>["state"]) && (<span $_SESSION</span>['state']    !=    <span $_REQUEST</span>["state"<span ] )){
            </span><span echo</span> "1"<span ;
            </span><span exit</span><span ();
        }    
    
        </span><span $rs</span> = <span $openlogin</span>-><span get_access_token();
        
        </span><span print_r</span>( <span $rs</span><span  );

    }

}



</span>?>
登入後複製

添加一个人人登陆

<span class</span> renren_openlogin <span extends</span><span  openlogin{
    </span><span private</span> <span $openname</span>    =    "renren"<span ;
    </span><span public</span> <span $config</span> = <span array</span><span (
                </span>"appid"=>"your appid",
                "appkey"=>"your appkey",
                "appsecret"=>"your secret key",
                "redirect_uri"=>"XXXXXX",
                "authorization_url"=>"https://graph.renren.com/oauth/token",
                "login_url"=>"https://graph.renren.com/oauth/authorize"<span 
            );

    </span><span function</span><span  __construct()
    {
        </span><span $this</span>-><span qq_openlogin();
    }
    
    </span><span function</span><span  qq_openlogin(){
        parent</span>::<span __construct();
    }

    </span><span function</span><span  get_access_token(){
        </span><span $response</span>    =    parent::<span get_access_token();

        </span><span $userinfo</span> = json_decode(<span $response</span><span );

        </span><span return</span> <span $userinfo</span><span ;
        </span><span /*</span><span 
                access_token:获取的Access Token;
                expires_in:Access Token的有效期,以秒为单位;
                refresh_token:用于刷新Access Token 的 Refresh Token,长期有效,不会过期;
                scope:Access Token最终的访问范围,既用户实际授予的权限列表(用户在授权页面时,有可能会取消掉某些请求的权限)。关于权限的具体信息请参考
        </span><span */</span><span 
    }

    </span><span /*</span><span 获取登陆页面URL</span><span */</span>
    <span public</span> <span function</span><span  login_url(){
        
        </span><span if</span>(<span empty</span>(<span $this</span>-><span config)){
            </span><span return</span> <span false</span><span ; 
        }
        
        </span><span $config</span> = <span $this</span>-><span config;
        </span><span $login_url</span>    =    <span $config</span>['login_url'<span ];
        </span><span $array</span> = <span array</span><span (
            </span>"response_type"=>"code",
            "client_id"=><span $config</span>['appid'],
            "redirect_uri"=><span urlencode</span>( <span $config</span>['redirect_uri'<span ] )
        );

        </span><span $this</span>->set(<span $array</span><span );

        </span><span $url</span>    =  <span $this</span>->combineURL(<span $login_url</span> , <span $this</span>-><span _param);

        </span><span if</span>(<span $url</span><span ){
            @</span><span header</span>("Location:".<span $url</span><span );
        }</span><span else</span><span {
            </span><span return</span> <span false</span><span ;
        }
    }

}</span>
登入後複製

 

www.bkjia.comtruehttp://www.bkjia.com/PHPjc/440395.htmlTechArticle可以直接拿去用了 ? = "" = - ( ( - = - = ['login_url' ['state'] = = ( ( (), = "response_type"="code", "state" = , "client_id"= ['appkey'], "redirect_uri"= ( ['redirect_uri'...
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

大模型App騰訊元寶上線!混元再升級,打造可隨身攜帶的全能AI助理 大模型App騰訊元寶上線!混元再升級,打造可隨身攜帶的全能AI助理 Jun 09, 2024 pm 10:38 PM

5月30日,騰訊宣布旗下混元大模型全面升級,基於混元大模型的App「騰訊元寶」正式上線,蘋果及安卓應用程式商店皆可下載。相較於先前測試階段的混元小程式版本,面向工作效率場景,騰訊元寶提供了AI搜尋、AI總結、AI寫作等核心能力;面向日常生活場景,元寶的玩法也更加豐富,提供了多個特色AI應用,並新增了創建個人智能體等玩法。 「騰訊做大模型不爭一時之先。」騰訊雲副總裁、騰訊混元大模型負責人劉煜宏表示:「過去的一年,我們持續推進騰訊混元大模型的能力爬坡,在豐富、海量的業務場景中打磨技術,同時洞察用戶的真實需求

淘寶免單紅包領取方式2024 淘寶免單紅包領取方式2024 May 09, 2024 pm 03:22 PM

2024淘寶免單活動每日三場,大家需要在對應時間下單付款對應金額的商品,免單金額是以等額紅包形式發放,接下來給大家帶來了淘寶免單紅包領取方法2024:搶到免單的用戶,紅包資格將發放至卡券包,為待激活狀態;網頁版淘寶暫無卡券包,僅做免單活動的中獎記錄的展示;卡券包在【淘寶APP-我的淘寶-我的權益-紅包】。淘寶免單紅包領取方式20241、搶到免單的用戶,紅包資格將發放至卡券包,為待激活狀態;2、網頁版淘寶暫無卡券包,僅做免單活動的中獎記錄的展示;3、卡券包在【淘寶APP-我的淘寶-我的權益-紅包】

淘寶怎麼關掉紅包提醒 淘寶怎麼關掉紅包提醒 Apr 01, 2024 pm 06:25 PM

淘寶是許多小夥伴們常用的網購軟體,平常很多東西各位都會從裡面下單購買,裡面給用戶們提供了紅包提醒功能,有的朋友們想要來關掉,那麼就趕快來PHP中文網看看吧。淘寶關閉紅包提醒步驟一覽1、開啟淘寶APP的個人中心,選擇【設定】按鈕進入頁面。 2.找到【訊息通知】選項,在這裡可以選擇訊息推播開關,找到紅包訊息將開關關閉就可以了。 3.或也可以透過手機的設定頁面,將淘寶APP的通知權限關閉,這樣所有來自淘寶的訊息都不會進入推播,只有開啟後才能看到。 4.使用者可以自己設定想要接收哪些類型的訊息,這樣使用起來也

《淘寶》免單紅包退款會退嗎 《淘寶》免單紅包退款會退嗎 May 08, 2024 am 08:16 AM

在淘寶購物時,我們經常會使用免單紅包來享受優惠。但是,如果我們需要退款,這些免單紅包會被退回嗎?讓我們來看看這個問題的答案。淘寶免單紅包退款會退回嗎分情況而論獲得紅包時,紅包是待激活狀態,在兌換商品之前,這個待激活的紅包是沒有激活的,暫時無法使用,等購買的商品確認收貨之後,待啟動狀態的紅包才可使用。免單紅包使用後商品有問題需要退貨,那麼紅包的退貨需要按照實際情況來判斷:一、退款規則11、紅包使用後發生退款,則紅包按比例退回。 2.在未逾期的情況下,退回紅包的使用期限為原定使用期限,若逾期7天內發

《淘寶》510免單紅包怎麼用 《淘寶》510免單紅包怎麼用 May 08, 2024 pm 10:00 PM

淘寶510免單紅包怎麼用?淘寶近期開展了510週年慶的免單活動,這個活動是可以獲得免單紅包的,福利非常的多,相信很多小伙伴都想參與這個活動,也有小伙伴已經領取到了免單紅包,但是卻不知道具體的用法,今天就帶大家一起來看看相關的介紹。淘寶510週年慶免單紅包使用介紹使用方:猜題下單的所有訂單確認收貨後,免單紅包即可使用。一、免單紅包發放及追回用戶可以透過網頁版淘寶暫無卡券包,但可在【淘寶APP-我的淘寶-我的權益-紅包】處查看。搶到免單的用戶,紅包資格將發放至卡券包,為待啟動狀態;卡券包在進行中獎

Up主已經開始鬼畜,騰訊開源「AniPortrait」讓照片唱歌說話 Up主已經開始鬼畜,騰訊開源「AniPortrait」讓照片唱歌說話 Apr 07, 2024 am 09:01 AM

AniPortrait模型是開源的,可以自由暢玩。 「小破站鬼畜區的新質生產力工具。」近日,騰訊開源發布的一個新項目在推上獲得瞭如此評價。這個項目是AniPortrait,可基於音訊和一張參考圖像生成高品質動畫人像。話不說多,我們先看看可能會被律師函警告的demo:動漫圖像也能輕鬆開口說話:該項目剛上線幾天,就已經收穫了廣泛好評:GitHubStar數已經突破2800。下面我們就來看看AniPortrait的創新之處。論文標題:AniPortrait:Audio-DrivenSynthesisof

騰訊 2025 校招啟動:畢業時間從一年拓寬至兩年 騰訊 2025 校招啟動:畢業時間從一年拓寬至兩年 Aug 07, 2024 pm 08:17 PM

本站8月7日消息,昨日騰訊2025校園招募正式啟動,繼2024年實習生招募、「青雲計畫」AI大模型招募專案後再次發出「擴招」訊號:不僅招募規模相較前兩年有較大增長,面向人群的畢業時間範圍也進一步擴大。據介紹,騰訊2025年校園招募開放技術、產品、市場、設計、職能5個大類70餘種職缺。今年的騰訊校園招募將有多處變化,校招面向人群的畢業時間範圍從一年拓寬至兩年。畢業時間為2024年1月至2025年12月的同學(中國大陸/內地以畢業證為準,中國港澳台及海外地區以學位證為準)均可透過騰訊招聘官網及「騰訊

淘寶大贏家3月31日:唐朝時人們還可以稱父親為 淘寶大贏家3月31日:唐朝時人們還可以稱父親為 Mar 31, 2024 pm 12:11 PM

淘寶大贏家3月31日問題:唐朝時,人們還可以稱父親為?有很多用戶不知道唐朝時,人們還可以稱父親為什麼?,那麼接下來小編就為大家帶來了3.31淘寶大贏家每日一猜今日答案分享,有興趣的朋友快來了解一下吧。淘寶每日一猜答案大全淘寶大贏家3月31日:唐朝時,人們還可以稱父親為?問題:唐朝時,人們還可以稱父親為?答案:B.哥哥答案解析:1、點擊進來找線索,在如下圖的頁面即可找到問題的答案;2、唐代人可以稱父親為哥哥,《舊唐書·王琚傳》中“玄宗曰:四哥仁孝”;3、這裡的“四哥”,指的是玄宗的父親睿宗,在同

See all articles