如何使用PHP从地址栏中检索完整的URL?

时间:2012-06-28 13:39:44

标签: php

  

可能重复:
  How to get full URL on the address bar using PHP

我使用此功能,但它不能一直工作。任何人都可以提示吗?

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

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

请提示。

2 个答案:

答案 0 :(得分:17)

这个怎么样?

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

echo getAddress();

答案 1 :(得分:-1)

您可以使用上述函数检索URL直到GET参数。 所以你有字符串='localhost / site / tmp'(例子)。 之后,如果无法获得其他任何工作,您可以循环访问GET参数。 添加'?'在字符串末尾手动。

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

echo $ str; 最后您要删除最后一个符号'&'并且不需要。