[后端][php]获取完整URL

在实现网址跳转时,尤其是跨域网址跳转时,跳转完成后跳转回当前页面,需要先获取当前网址URL,以参数形式传递到跳转目标地址,跳转目标地址执行完后,再跳转回当前网址。
获取当前网址的完整URL代码如下:

/**
 * 获取当前完整URL
 * 
 * @return string
 */
function get_url() {
    $sys_protocal = isset ( $_SERVER ['SERVER_PORT'] ) && $_SERVER ['SERVER_PORT'] == '443' ? 'https://' : 'http://';//根据当前端口,判断是http还是https
    $php_self = $_SERVER ['PHP_SELF'] ? $_SERVER ['PHP_SELF'] : $_SERVER ['SCRIPT_NAME'];//获取当前网页地址
    $path_info = isset ( $_SERVER ['PATH_INFO'] ) ? $_SERVER ['PATH_INFO'] : '';//获取path_info信息
    $relate_url = isset ( $_SERVER ['REQUEST_URI'] ) ? $_SERVER ['REQUEST_URI'] : $php_self . (isset ( $_SERVER ['QUERY_STRING'] ) ? '?' . $_SERVER ['QUERY_STRING'] : $path_info);//获取除域名外的完整URL,获取不到php文件(如启用了pathinfo),就获取文件实际地址和参数
    return $sys_protocal . (isset ( $_SERVER ['HTTP_HOST'] ) ? $_SERVER ['HTTP_HOST'] : '') . $relate_url;//返回完成的URL
}

提示
1.该方法主要用于获取微信授权时,微信授权后跳转回当前页面,需要用该方法获取当前页面完整URL。其它场景如未登录跳转到登录页,也可以用该方法获取未登录前访问的页面URL,以便登录完成后自动跳转。
2.该方法没有除系统函数以外的依赖,可以直接公共方法库中,供全局代码调用。
3.使用实例

/**
     * 获取微信授权
     */
    private function toGetAuth() {
        header ( "Content-type:text/html;charset=utf-8" );
        $url =  "http://www.xxx.com/wxapi.php?c=Auth&a=auth_userinfo&wxappuser=" . C ( 'WXAPI_USER' ) . "&callback=" . urlencode ( get_url () );//注意,一般在参数中传递网址需要使用url编码       
        // 重定向浏览器
        header ( "Location:" . $url );
        exit ();
    }
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值