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

来源:互联网 发布:java助理工程师要求 编辑:程序博客网 时间:2024/05/16 07:56

在实现网址跳转时,尤其是跨域网址跳转时,跳转完成后跳转回当前页面,需要先获取当前网址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 ();    }
原创粉丝点击