我想知道如何获取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我希望你理解我的问题,即使写得不好,我也很难解释我的问题。
答案 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]";