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;
}

アドレスバーのリンクを(正確に)取得して、サインアウトしたときにユーザーを参照するために使用したいと考えています。URL が異なります。

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

上記の関数を使用して、GET パラメータまで URL を取得できます。= '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 に答える