📜  如何在PHP中获取完整的当前页面 URL?(1)

📅  最后修改于: 2023-12-03 15:24:33.643000             🧑  作者: Mango

如何在PHP中获取完整的当前页面 URL?

在Web开发中,获取当前页面的URL是一个比较基础的操作。在PHP中,我们可以通过一些函数和变量来获取当前页面的URL。下面是一些获取当前页面URL的方法:

方法一:$_SERVER['REQUEST_URI']

在PHP中,$_SERVER 是一个包含有关服务器和执行脚本的信息的超全局变量数组。通过 $_SERVER['REQUEST_URI'] 可以获取当前请求的URI(不包括协议和域名)。

示例代码:

$current_url = "http://".$_SERVER['HTTP_HOST'].$_SERVER['REQUEST_URI'];

这里将 $_SERVER['HTTP_HOST']$_SERVER['REQUEST_URI'] 拼接起来,就可以得到当前页面的完整URL。

方法二:$_SERVER['HTTPS'] 和 $_SERVER['HTTP_HOST']

如果当前页面使用HTTPS协议,可以使用 $_SERVER['HTTPS'] 判断。使用 $_SERVER['HTTP_HOST'] 获取当前域名。

示例代码:

$protocol = (!empty($_SERVER['HTTPS']) && $_SERVER['HTTPS'] != 'off') ? 'https' : 'http';
$current_url = $protocol . '://' . $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI'];

这里首先判断 $_SERVER['HTTPS'] 是否存在,如果存在且不为 'off',则使用 HTTPS 协议。否则使用 HTTP 协议。

这种方法获取到的完整URL,包括协议、域名和URI。

方法三:parse_url() 函数

使用 PHP 内置函数 parse_url() 可以将一个URL字符串解析成多个组成部分的数组。我们可以通过 parse_url() 函数获取当前页面的协议、域名和URI,并拼接成完整的URL。

示例代码:

$url_components = parse_url($_SERVER['REQUEST_URI']);
$current_url = $_SERVER['HTTP_HOST'] . $url_components['path'];
if (isset($url_components['query'])) {
  $current_url .= '?' . $url_components['query'];
}

上面的代码在获取URI和查询字符串时,使用了 parse_url() 函数的 path 和 query 属性。

这种方法获取到的完整URL,包括域名和URI,不包括协议。

以上三种方法都可以用来获取当前页面的完整URL。具体使用哪种方法,可以根据具体情况进行选择。

总结

以上就是获取当前页面URL的三种常用方法。在Web开发中,获取当前页面URL是一个常见的需求,掌握这些方法可以帮助程序员更快、更准确地获取到需要的URL信息。