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

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

$_SERVER['REQUEST_URI'] 

有关$ _SERVER数组中可用信息的更多详细信息,请参阅PHP手册页 。

如果您还需要查询string(位于URL中的?之后的位),则该部分位于此variables中:

 $_SERVER['QUERY_STRING'] 

如果你只想在http://domain.com之后的部分url,试试这个:;

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

如果当前url是http://domain.com/some-slug/some-id ,那么echo将只返回'/ some-slug / some-id'。

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

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

这会给你所要求的目录和文件名。 如果你使用mod_rewrite,这是非常有用的,因为它告诉你用户在看什么页面。

如果您需要实际的文件名,您可以尝试$_SERVER['PHP_SELF'] ,魔术常量__FILE__$_SERVER['SCRIPT_FILENAME'] 。 后者2给你完整的path(从服务器的根),而不仅仅是你的网站的根。 它们对于包含等是有用的。

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

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

其他答案是正确的。 但是,一个简单的说明:如果你想抓住的东西后? 在一个URI中,你应该使用$_GET[]数组。

你可以使用$ _SERVER ['HTTP_REFERER']这将给你整个URL例如:假设你想获得网站名称www.example.com的url,那么$ _SERVER ['HTTP_REFERER']会给你https:// www。 example.com