在PHP中,如何获取当前页面的URL?最好只是http://domain.com之后的部分。
答案 0 :(得分:251)
$_SERVER['REQUEST_URI']
有关$ _SERVER数组中可用信息的详细信息,请参阅the PHP manual page for it。
如果您还需要查询字符串(URL中?
之后的位),则该部分位于此变量中:
$_SERVER['QUERY_STRING']
答案 1 :(得分:75)
如果您只想在http://domain.com之后输入网址的部分,请尝试以下操作:
<?php echo $_SERVER['REQUEST_URI']; ?>
如果当前网址为http://domain.com/some-slug/some-id,则echo仅返回&#39; / some-slug / some-id&#39;。
如果你想要完整的网址,试试这个:
<?php echo 'http://' . $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI']; ?>
答案 2 :(得分:24)
$uri = $_SERVER['REQUEST_URI'];
这将为您提供所请求的目录和文件名。如果你使用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'];
答案 3 :(得分:10)
其他答案都是正确的。但是,请注意:如果您希望在URI中?
之后获取内容,则应使用$_GET[]
数组。
答案 4 :(得分:0)
您可以使用$ _SERVER ['HTTP_REFERER']这将为您提供整个网址,例如:假设您想获取网站名称www.example.com的网址,那么$ _SERVER ['HTTP_REFERER']将为您提供{{3 }}