开发者

php extracting complete url with variables

开发者 https://www.devze.com 2022-12-25 12:41 出处:网络
Using Php I would like to extract the current Url of a page including all variables at开发者_C百科tached to it.

Using Php I would like to extract the current Url of a page including all variables at开发者_C百科tached to it. $_SERVER['PHP_SELF'] only return the url without the variable . any idea what function I need.

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

using $_SERVER['PHP_SELF'] I get only : www.site.com as opposed to the whole url. using $_GET[] individually is not an opton since I am not sure what variable are attached to the URL.

thank you


You could output the content of the $_SERVER super-global variable : there are many interesting things in there ;-)


For example, calling a page with an URL like this :

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

And using :

var_dump($_SERVER);

I get at least :

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


In there, I suppose at least those could interest you :

  • $_SERVER['QUERY_STRING'] : contains the whole query string ; i.e. the list of all parameters and their values
  • $_SERVER['REQUEST_URI'] : contains the requested URI -- including the parameters


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

For the entire path and Query strings.


Use $_SERVER['QUERY_STRING'] to retrieve the variables part.

Cheers


The best solution I have found so far is this one: 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;
}


Two lines:

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

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

精彩评论

暂无评论...
验证码 换一张
取 消