1. 获取当前完整URL的意义
在web开发中,获取当前页面的完整url十分重要,因为可能会涉及到以下需求:
- 需要将当前页面的完整url分享到其他平台;
- 需要在页面跳转时获取当前页面的url并进行相关操作;
- 需要在后端程序中获取当前页面的url进行数据处理;
2. 使用$_SERVER['REQUEST_URI']获取当前页面的url
为了获取当前页面的完整url,我们可以使用PHP中的超全局变量 $_SERVER,$_SERVER是一个包含了诸如头信息(header)、路径(path)、以及脚本位置(script locations)等等信息的数组。
比如,如果我们想要获取当前页面的url,我们可以使用$_SERVER['REQUEST_URI']来获取。
$current_url = "https://" . $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI'];
echo $current_url;
解释一下上述代码的作用,首先使用了$_SERVER['HTTP_HOST']来获取当前网站的域名(如:www.abc.com),紧接着使用$_SERVER['REQUEST_URI']来获取当前页面的路径,两者使用 . 连接起来组成了当前页面的完整url,最后通过echo语句打印出来。
3. 使用$_SERVER['PHP_SELF']获取当前页面的url
除了使用 $_SERVER['REQUEST_URI'],我们还可以用$_SERVER['PHP_SELF']来获取当前页面的url,不同的是,使用$_SERVER['PHP_SELF']会将当前页面文件的路径作为url的一部分,具体的实现方式可以是这样:
$current_url2 = "https://" . $_SERVER['HTTP_HOST'] . $_SERVER['PHP_SELF'];
echo $current_url2;
在上述代码中,我们使用了$_SERVER['PHP_SELF']获取当前页面文件的路径,这个路径是不含域名的,所以我们还需要加上$_SERVER['HTTP_HOST']来获取当前网站的域名。
4. 使用parse_url函数对url进行解析
除了使用 $_SERVER['REQUEST_URI']和$_SERVER['PHP_SELF'],我们还可以使用PHP自带的函数parse_url来解析url。parse_url可以将一个url字符串解析成一个数组,具体的实现方式可以是这样:
$current_url3 = "https://" . $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI'];
$current_array = parse_url($current_url3);
echo $current_array['scheme'] . "://" . $current_array['host'] . $current_array['path'] . "?" . $current_array['query'];
在上述代码中,我们使用了parse_url函数将获取到的当前页面的url字符串解析成了一个数组。在使用解析出来的数组时,我们需要使用每个元素的标识符来获取值。比如,$current_array['scheme']就表示url中的协议(http或https),$current_array['host']就表示url中的主机名,$current_array['path']就表示url中的路径(不包括主机名和参数),$current_array['query']就表示url中的查询参数(即问号后面的内容)。
5. 总结
以上便是获取当前页面完整url的方法,可以根据不同的需求来选择使用哪种方法。在使用时需要注意url的组成以及各个元素的标识符。