Php 获取可见的URL
我想知道如何获得URL(在栏中可见的那个)。 我试着用谷歌搜索,很多答案都是这样写的:Php 获取可见的URL,php,Php,我想知道如何获得URL(在栏中可见的那个)。 我试着用谷歌搜索,很多答案都是这样写的: $url= "http://".$_SERVER['HTTP_HOST'].$_SERVER['REQUEST_URI']; 但它将获取您所在文件的路径。 我只想获取可见的url,如下所示: www.something.com/index.php?page=teams 然后只获取您可以看到的url,而不是包含的url。当我这样做的时候,我会得到如下结果: www.something.com/search
$url= "http://".$_SERVER['HTTP_HOST'].$_SERVER['REQUEST_URI'];
但它将获取您所在文件的路径。
我只想获取可见的url,如下所示:
www.something.com/index.php?page=teams
然后只获取您可以看到的url,而不是包含的url。当我这样做的时候,我会得到如下结果:
www.something.com/search.php
因为我正在打印包含文件search.php中的URL
我希望你能理解我的问题,尽管写得有点糟糕,但我发现很难解释我的问题。对于url:
$\u SERVER['REQUEST\u URI']
之后?在url:$\u服务器['QUERY\u STRING']
这可能会有帮助:
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, '/'));
}
使用
$\u服务器['REQUEST\u URI']
$actual\u link=“http://$\u服务器[http\u主机]$\u服务器[REQUEST\u URI]”代码>你是说你想要URL减去协议吗?(http://
)不。我想要“可见”的url。带着问号和东西我不知道你说的“可见”URL是什么意思-在我的例子中,整个URL都是可见的..好的。我回显search.php中的url。这就是我在脚本中包含的文件。然后,如果我使用前面显示的方法,它将显示www.something.com/search.php。但这不是顶部的url。顶部的URL是www.something.com/index.php?page=teams,这就是我不想显示的内容啊,好吧,我现在明白多了。是search.php
包含d到index.php
?谢谢你的回答。但是我不能让它不起作用。。只要我写查询字符串,它就不会显示任何内容。www.domain.com/?type=home