获取可见的URL

时间:2014-02-17 10:52:48

标签: php

我想知道如何获取URL(栏中可见的URL)。 我试图谷歌它,很多答案是写这个:

$url= "http://".$_SERVER['HTTP_HOST'].$_SERVER['REQUEST_URI'];

但它会获取您所在文件的路径。 我想得到可见的网址,就像这样:

www.something.com/index.php?page=teams

然后只获取您可以看到的网址,而不是包含的网址。当我这样做时,生病了:

 www.something.com/search.php

因为我在包含的文件search.php。

中打印了URL

我希望你理解我的问题,即使写得不好,我也很难解释我的问题。

3 个答案:

答案 0 :(得分:3)

表示网址:$_SERVER['REQUEST_URI']

之后?在网址:$_SERVER['QUERY_STRING']

答案 1 :(得分:0)

这可能会有所帮助:

public function getUri()
{
    if (!isset($_SERVER['REQUEST_URI']) or !isset($_SERVER['SCRIPT_NAME'])) {
        return '';
    }
$uri = $_SERVER['REQUEST_URI'];
if (strpos($uri, $_SERVER['SCRIPT_NAME']) === 0) {
    $uri = substr($uri, strlen($_SERVER['SCRIPT_NAME']));
} elseif (strpos($uri, dirname($_SERVER['SCRIPT_NAME'])) === 0) {
    $uri = substr($uri, strlen(dirname($_SERVER['SCRIPT_NAME'])));
}
// This section ensures that even on servers that require the URI to be in the query string (Nginx) a correct
// URI is found, and also fixes the QUERY_STRING server var and $_GET array.
if (strncmp($uri, '?/', 2) === 0) {
    $uri = substr($uri, 2);
}
$uri = parse_url($uri, PHP_URL_PATH);
// Do some final cleaning of the URI and return it
    return str_replace(array('//', '../'), '/', trim($uri, '/'));
}

答案 2 :(得分:0)

使用$_SERVER['REQUEST_URI']

$actual_link = "http://$_SERVER[HTTP_HOST]$_SERVER[REQUEST_URI]";