php使用变量提取完整的URL

时间:2010-03-31 18:29:49

标签: php

使用Php我想提取页面的当前Url,包括附加到它的所有变量。 $ _SERVER ['PHP_SELF']只返回没有变量的url。知道我需要什么功能。

示例:www.site.com/?v1=xyz&v2=123

使用$ _SERVER ['PHP_SELF']我只得到:www.site.com而不是整个网址。 单独使用$ _GET []不是一个opton,因为我不确定哪个变量附加到URL。

谢谢

5 个答案:

答案 0 :(得分:6)

你可以输出$_SERVER超全局变量的内容:那里有许多有趣的东西; - )


例如,使用以下URL调用页面:

http://localhost/temp/temp.php?a=10&b=glop

使用:

var_dump($_SERVER);

我至少得到:

array
  ...
  'HTTP_HOST' => string 'localhost' (length=9)
  ...
  'REQUEST_METHOD' => string 'GET' (length=3)
  'QUERY_STRING' => string 'a=10&b=glop' (length=11)
  'REQUEST_URI' => string '/temp/temp.php?a=10&b=glop' (length=26)
  'SCRIPT_NAME' => string '/temp/temp.php' (length=14)
  'PHP_SELF' => string '/temp/temp.php' (length=14)
  'REQUEST_TIME' => int 1270060299


在那里,我想至少那些人会对你感兴趣:

  • $_SERVER['QUERY_STRING']:包含整个查询字符串;即所有参数及其值的列表
  • $_SERVER['REQUEST_URI']:包含请求的URI - 包括参数

答案 1 :(得分:3)

$request = $_SERVER['HTTP_HOST'].$_SERVER['REQUEST_URI'].$_SERVER['QUERY_STRING'];

对于整个路径和查询字符串。

答案 2 :(得分:0)

使用$_SERVER['QUERY_STRING']检索变量部分。

干杯

答案 3 :(得分:0)

到目前为止,我找到的最佳解决方案是:http://hayageek.com/php-get-current-url/

function getCurrentURL() {
    $currentURL = (@$_SERVER["HTTPS"] == "on") ? "https://" : "http://";
    $currentURL .= $_SERVER["SERVER_NAME"];

    if($_SERVER["SERVER_PORT"] != "80" && $_SERVER["SERVER_PORT"] != "443") {
        $currentURL .= ":".$_SERVER["SERVER_PORT"];
    } 

    $currentURL .= $_SERVER["REQUEST_URI"];
    return $currentURL;
}

答案 4 :(得分:0)

两行:

$base_url = ( isset($_SERVER['HTTPS']) && $_SERVER['HTTPS']=='on' ? 'https' : 'http' ) . '://' .  $_SERVER['HTTP_HOST'];

url = $base_url . $_SERVER["REQUEST_URI"];