5

可能重复:
如何使用 PHP 在地址栏上获取完整 URL

我使用这个功能,但它并不总是有效。谁能给个提示?

function sofa_get_uri() {
    $host = $_SERVER['SERVER_NAME'];
    $self = $_SERVER["REQUEST_URI"];
    $query = !empty($_SERVER['QUERY_STRING']) ? $_SERVER['QUERY_STRING'] : null;
    $ref = !empty($query) ? "http://$host$self?$query" : "http://$host$self";
    return $ref;
}

我想(准确地)检索地址栏中的链接,以便在用户退出时使用它来推荐用户。网址不同:

http://domain.com/sample/address/?arg=bla

http://domain.com/?show=bla&act=bla&view=bla

http://domain.com/nice/permalinks/setup

但我无法获得适用于所有情况的功能并给我真正的推荐人。

请提示。

4

2 回答 2

22

这个怎么样?

function getAddress() {
    $protocol = $_SERVER['HTTPS'] == 'on' ? 'https' : 'http';
    return $protocol.'://'.$_SERVER['HTTP_HOST'].$_SERVER['REQUEST_URI'];
}

echo getAddress();
于 2012-06-28T13:50:08.180 回答
-2

您可以使用上面的函数来检索 URL,直到 GET 参数。所以你有像='localhost/site/tmp'这样的字符串(示例)。之后,如果不能让其他任何东西起作用,您可以循环遍历 GET 参数。添加 '?' 在字符串的末尾手动。

$str = 'localhost/site/tmp/?'
foreach ($_GET as $key => $value) {
    $str .= $key.'='.$value.'&';
}
substr_replace($str, "", -1);

回声 $str; 最后,您将删除最后一个不需要的符号“&”。

于 2012-06-28T13:46:35.730 回答