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

在 PHP 中,如何获得当前页面的 URL? 最好是 http://domain.example之后的部分。

780916 次浏览
$_SERVER['REQUEST_URI']

有关 $_ SERVER 数组中可用信息的详细信息,请参阅 它的 PHP 手册页

如果您还需要查询字符串(URL 中 ?后面的位) ,该部分在下面这个变量中:

$_SERVER['QUERY_STRING']
 $uri = $_SERVER['REQUEST_URI'];

这将为您提供所请求的目录和文件名。如果使用 mod _ rewrite,这将非常有用,因为它可以告诉您用户正在查看哪个页面。

如果需要实际的文件名,可以尝试使用 $_SERVER['PHP_SELF']、神奇常量 __FILE__$_SERVER['SCRIPT_FILENAME']。后面的2个提供了完整的路径(从服务器根目录) ,而不仅仅是你网站的根目录。它们对于 include 等是有用的。

$_SERVER['PHP_SELF']提供了相对于网站根目录的文件名。

 $relative_path = $_SERVER['PHP_SELF'];
$complete_path = __FILE__;
$complete_path = $_SERVER['SCRIPT_FILENAME'];

其他的答案都是正确的。但是,需要注意的是: 如果希望获取 URI 中 ?之后的内容,那么应该使用 $_GET[]数组。

你可以使用 $_SERVER['HTTP_REFERER']这将给你整个网址,例如:

假设你想得到网站名称的网址 www.example.com然后 $_SERVER['HTTP_REFERER']将给你 https://www.example.com

如果你只想要网址在 http://domain.example之后的部分,试试这个:

<?php echo $_SERVER['REQUEST_URI']; ?>

如果当前 URL 是 http://domain.example/some-slug/some-id,echo 将只返回 /some-slug/some-id


如果你想要完整的网址,试试这个:

<?php echo 'http://' . $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI']; ?>