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

版权声明:本文为博主原创文章,遵循 CC 4.0 by-sa 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/lzjpc500/article/details/77645040

在实现网址跳转时,尤其是跨域网址跳转时,跳转完成后跳转回当前页面,需要先获取当前网址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 ();
    }
展开阅读全文

没有更多推荐了,返回首页