php获取当前页面完整URL地址

1. 介绍

在开发网站或应用时,我们经常需要获取当前页面的完整URL地址。在PHP中,我们可以使用一些内置函数和特定的方法来获取当前页面的URL。

2. 使用$_SERVER数组获取URL

PHP提供了一个名为$_SERVER的超全局变量,其中包含了关于当前脚本的很多有用的信息,包括URL。

2.1 获取当前页面的URL

要获取当前页面的URL,我们可以使用$_SERVER['PHP_SELF']变量。


$url = $_SERVER['PHP_SELF'];

echo "当前页面的URL是:" . $url;

?>

上述代码将输出当前页面的URL。

$_SERVER['PHP_SELF']包含了当前脚本的文件名和路径,但不包含域名和协议。如果我们只需要获取路径部分,可以使用dirname()函数将其分离出来。


$url = dirname($_SERVER['PHP_SELF']);

echo "当前页面的路径是:" . $url;

?>

2.2 获取当前页面的完整URL

要获取当前页面的完整URL,我们可以结合使用$_SERVER['HTTP_HOST']和$_SERVER['REQUEST_URI']。


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

echo "当前页面的完整URL是:" . $fullUrl;

?>

上述代码将输出当前页面的完整URL,包括域名和协议。要注意的是,$_SERVER['REQUEST_URI']包含了查询字符串部分。

3. 使用其他函数获取URL

除了使用$_SERVER数组,还可以使用其他一些函数来获取当前页面的URL。

3.1 使用parse_url()函数

parse_url()函数可以解析URL并返回其各个部分的数组。我们可以使用它来获取当前页面的URL的各个部分。


$url = "http://example.com/path/to/page?param1=value1¶m2=value2#fragment";

$parsedUrl = parse_url($url);

echo "URL的协议是:" . $parsedUrl['scheme'] . "<br>";

echo "URL的域名是:" . $parsedUrl['host'] . "<br>";

echo "URL的路径是:" . $parsedUrl['path'] . "<br>";

echo "URL的查询字符串是:" . $parsedUrl['query'] . "<br>";

echo "URL的锚点是:" . $parsedUrl['fragment'] . "<br>";

?>

上述代码将输出URL的各个部分。

3.2 使用$_SERVER['HTTP_REFERER']获取引用页面的URL

$_SERVER['HTTP_REFERER']变量包含了引用当前页面的URL。可以使用它来获取引用页面的URL。


$refererUrl = $_SERVER['HTTP_REFERER'];

echo "引用当前页面的URL是:" . $refererUrl;

?>

上述代码将输出引用当前页面的URL。

4. 总结

通过使用PHP提供的内置函数和特定的方法,我们可以轻松地获取当前页面的完整URL地址。本文介绍了使用$_SERVER数组和其他函数来实现这一目标的方法。无论是获取当前页面的URL还是获取引用页面的URL,都可以根据具体的需求来选择合适的方法。

后端开发标签