2010-03-31 68 views
2

使用PHP我想提取頁面的當前網址,包括所有變量附加​​到它。 $ _SERVER ['PHP_SELF']只返回沒有變量的url。任何想法我需要什麼功能。PHP提取完整的網址與變量

例如:www.site.com/?v1=xyz & V2 = 123

使用$ _ SERVER [ 'PHP_SELF']我只得到:www.site.com,而不是整個URL。 單獨使用$ _GET []不是一個opton,因爲我不確定哪個變量附加到該URL。

謝謝

回答

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 - 包括參數
0

使用$_SERVER['QUERY_STRING']檢索變量部分。

乾杯

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

對於整個路徑和查詢字符串。

+1

不會重複的參數? – 2015-03-22 19:28:48

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

兩個行:

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

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