在PHP中,我该如何获取当前页面的URL?最好只获取在
http://domain.example
之后的部分。http://domain.example
之后的部分。$_SERVER['REQUEST_URI']
想要了解$_SERVER数组中可用的信息的更多细节,请参阅PHP手册页面。
如果您还需要查询字符串(URL中?
后面的部分),该部分存储在此变量中:
$_SERVER['QUERY_STRING']
$_SERVER['REQUEST_URI']
包含所有查询字符串,为什么我要使用 $_SERVER['QUERY_STRING']
? - Shafizadeh如果您只想得到网址http://domain.example
之后的部分,请尝试以下方法:
<?php echo $_SERVER['REQUEST_URI']; ?>
http://domain.example/some-slug/some-id
,echo仅返回/some-slug/some-id
。
<?php echo 'http://' . $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI']; ?>
HTTPS://
是否已启用?我找到了一个检查的函数:function isSSL() { return (!empty($_SERVER['HTTPS']) && $_SERVER['HTTPS'] !== 'off') || $_SERVER['SERVER_PORT'] == 443; }
- Dendromaniac $uri = $_SERVER['REQUEST_URI'];
这将为您提供所请求的目录和文件名。如果您使用mod_rewrite,这非常有用,因为它告诉您用户正在查看的页面。
如果您需要实际的文件名,您可以尝试使用$_SERVER['PHP_SELF']
、魔术常量__FILE__
或$_SERVER['SCRIPT_FILENAME']
。后两者给出了完整的路径(从服务器根目录开始),而不仅仅是您网站的根目录。它们对于包含等操作非常有用。
$_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
。$_SERVER['HTTP_REFERER']
正如其名,可以获取发送用户到当前页面的页面的 URL,也就是所谓的“来源”。 - DendromaniacHTTP_REFERER
不是当前页面,而是用户在当前页面之前访问的页面。 - AliBZ