我甚至不是一个PHP新手。但我需要给一位来到我公司的外部顾问打电话给BS,告诉我一些事情是不可能的。
在PHP中是否可以简单地创建一个显示用户请求的URL的网页。
换句话说:而不是回应/打印“Hello World”
我希望页面打印用户请求的网址。
答案 0 :(得分:2)
这可以通过以下方式完成:
echo $_SERVER['REQUEST_URI']
-
获取完整列表:
print_r($_SERVER)
另一个有用的是$_SERVER['HTTP_HOST']
如果你要进行重定向,你需要做更多的步法,但一个简单的解决方案是:
header("Location: {$site}?original_request={$_SERVER['REQUEST_URI']}");
- 然后处理您重定向到的页面中的其余部分。
答案 1 :(得分:2)
我认为您要找的是full
网址。这可以用。
$url = "http://$_SERVER[HTTP_HOST]$_SERVER[REQUEST_URI]";
echo $url;
只是包含端口。
$port = ($_SERVER["SERVER_PORT"] == "80") ? "" : (":".$_SERVER["SERVER_PORT"]);
$url = "http://".$_SERVER['HTTP_HOST'].$port.$_SERVER['REQUEST_URI'];
答案 2 :(得分:1)
这里你去:
echo $_SERVER['PHP_SELF'];
答案 3 :(得分:1)
从某种意义上说,你和顾问都是正确的。在大多数情况下,是的,您可以获得确切的URL。在许多情况下,URL将是近似值。在某些情况下,您可能无法接近请求的URL。
以下是构建完全网址的一些障碍:
你可以通过一个隐藏的输入变量来解决这些问题,这个输入变量由Javascript填充并带有完整的URL,然后发布。但是后来的争论是“如果Javascript没有开启,那就好了。”
所以,我说“是的,你可以”是实用/务实的答案,而“不,你不能”是学术答案。