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

Cli*_*ote 141 php

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

Amb*_*ber 263

$_SERVER['REQUEST_URI']
Run Code Online (Sandbox Code Playgroud)

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

如果您还需要查询字符串(?URL中的位),则该部分位于此变量中:

$_SERVER['QUERY_STRING']
Run Code Online (Sandbox Code Playgroud)

  • 如果页面通过mod_rewrite重定向,则iirc,PHP_SELF和REQUEST_URI将具有不同的值 - 前者具有实际脚本的路径,后者具有最初请求的路径. (11认同)
  • 你也可以使用$ _SERVER ['PHP_SELF'] (5认同)
  • $ _SERVER ['REQUEST_URI']`也包含所有查询字符串,为什么要使用`$ _SERVER ['QUERY_STRING']`? (2认同)

Jon*_*ico 82

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

<?php echo $_SERVER['REQUEST_URI']; ?>
Run Code Online (Sandbox Code Playgroud)

如果当前网址为http://domain.com/some-slug/some-id,则echo将仅返回'/ some-slug/some-id'.

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

<?php echo 'http://' . $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI']; ?>
Run Code Online (Sandbox Code Playgroud)

  • 你不应该检查是否启用了"HTTPS://"?我找到了这个函数来检查:`function isSSL(){return(!empty($ _ SERVER ['HTTPS'])&& $ _SERVER ['HTTPS']!=='off')|| $ _SERVER ['SERVER_PORT'] == 443; }` (16认同)

Tyl*_*ter 24

 $uri = $_SERVER['REQUEST_URI'];
Run Code Online (Sandbox Code Playgroud)

这将为您提供所请求的目录和文件名.如果你使用mod_rewrite,这非常有用,因为它告诉你用户正在查看的页面.

如果你需要实际的文件名,你可能想要尝试$_SERVER['PHP_SELF']魔术常数__FILE__,或者$_SERVER['SCRIPT_FILENAME'].后者2为您提供完整的路径(来自服务器的根目录),而不仅仅是您网站的根目录.它们对包含等有用.

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

 $relative_path = $_SERVER['PHP_SELF'];
 $complete_path = __FILE__;
 $complete_path = $_SERVER['SCRIPT_FILENAME'];
Run Code Online (Sandbox Code Playgroud)


Ima*_*ist 10

其他答案都是正确的.但是,请注意:如果您希望?在URI 之后获取内容,则应使用该$_GET[]数组.