如何使用PHP检索页面的URL?

时间:2010-01-17 22:49:10

标签: php url

新手问题在这里,是否有任何内置的PHP标签可用于检索页面的URL并在屏幕上回显它?

感谢。

4 个答案:

答案 0 :(得分:2)

回显当前页面的网址。

$pageURL = (@$_SERVER["HTTPS"] == "on") ? "https://" : "http://";
if ($_SERVER["SERVER_PORT"] != "80")
{
    $pageURL .= $_SERVER["SERVER_NAME"].":".$_SERVER["SERVER_PORT"].$_SERVER["REQUEST_URI"];
} 
else 
{
    $pageURL .= $_SERVER["SERVER_NAME"].$_SERVER["REQUEST_URI"];
}
echo $pageURL;

答案 1 :(得分:1)

如果您的Web服务器在标准端口上运行(HTTP为80或HTTPS为443),则可以使用:

getservbyport($_SERVER['SERVER_PORT'], 'tcp') . '://' . $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI']

答案 2 :(得分:0)

查看$_Server变量。具体来说,您可能需要REQUEST_URI值。

答案 3 :(得分:0)

$base_url = _SERVER["HTTP_HOST"];
$url_path = _SERVER["REQUEST_URI"];

echo $base_url.$url_path;

假设请求的页面为http://sample.org/test.php,您将获得:

 sample.org/test.php

您必须添加更多$ _SERVER变量才能获得方案(http://)。 REQUEST_URI也保留了所有GET个变量,因此如果页面请求为http://sample.org/test.php?stuff=junk,您将获得:

 sample.org/test.php?stuff=junk

如果您希望停止使用,请使用$_SERVER['PHP_SELF']代替REQUEST_URI

如果您想要一种非常简单的方法来查看哪些全局变量可用,请创建一个包含以下内容的页面:

<?php

phpinfo();

?>

并将该脚本放在您感兴趣的任何目录中。您不仅可以看到各种简洁信息,还可以看到HTTPHTTPSmod_rewrite甚至Apache与IIS等各种因素如何以不同方式设置某些全局变量或完全没有。