_get param from url php

[PHP 4 >= 4.1.0, PHP 5, PHP 7, PHP 8]

$_GETHTTP GET variables

Description

An associative array of variables passed to the current script via the URL parameters [aka. query string]. Note that the array is not only populated for GET requests, but rather for all requests with a query string.

Examples

Example #1 $_GET example

Assuming the user entered //example.com/?name=Hannes

The above example will output something similar to:

Notes

Note:

This is a 'superglobal', or automatic global, variable. This simply means that it is available in all scopes throughout a script. There is no need to do global $variable; to access it within functions or methods.

Note:

The GET variables are passed through urldecode[].

CleverUser123

9 months ago

If you're tired of typing $var = $_GET['var'] to get variables, don't forget that you can also use:

extract[$_GET, EXTR_PREFIX_ALL, "g"]

So if you have $_GET['under'], you can do $g_under. It's way shorter if you have more get elements! If you don't want prefix, do

extract[$_GET]

to get normal. So $_GET['under'] would become $under. Might not extract under if it already exists, however.

An Anonymous User

1 year ago

View Discussion

Improve Article

Save Article

  • Read
  • Discuss
  • View Discussion

    Improve Article

    Save Article

    The parameters from a URL string can be retrieved in PHP using parse_url[] and parse_str[] functions.

    Note: Page URL and the parameters are separated by the ? character.

    parse_url[] Function: The parse_url[] function is used to return the components of a URL by parsing it. It parse an URL and return an associative array which contains its various components.

    Syntax: 

    parse_url[ $url, $component = -1 ]

    parse_str[] Function: The parse_str[] function is used to parse a query string into variables. The string passed to this function for parsing is in the format of a query string passed via a URL.

    Syntax:  

    parse_str[ $string, $array ]

    Approach: Parse the URL string using parse_url[] function which will return an associative array that contains its [passed URL] various components. The query of the array returned by parse_url[] function which contains a query string of URL.

    Below examples uses parse_url[] and parse_str[] function to get the parameters from URL string. 

    Example 1:  

    PHP

    Example 2: 

    PHP

    Output:

    Hi Amit your emailID is 

    PHP is a server-side scripting language designed specifically for web development. You can learn PHP from the ground up by following this PHP Tutorial and PHP Examples.


    I have an HTML form field $_POST["url"], having some URL strings as the value.

    Example values are:

    //example.com/test/1234?email=
    //example.com/test/1234?basic=2&email=
    //example.com/test/1234?email=
    //example.com/test/1234?email=&testin=123
    //example.com/test/the-page-here/1234?someurl=key&email=
    

    etc.

    How can I get only the email parameter from these URLs/values?

    Please note that I am not getting these strings from the browser address bar.

    asked Jul 14, 2012 at 3:27

    Asim ZaidiAsim Zaidi

    25.8k48 gold badges129 silver badges219 bronze badges

    5

    You can use the parse_url[] and parse_str[] for that.

    $parts = parse_url[$url];
    parse_str[$parts['query'], $query];
    echo $query['email'];
    

    If you want to get the $url dynamically with PHP, take a look at this question:

    Get the full URL in PHP

    answered Jul 14, 2012 at 3:47

    2

    All the parameters after ? can be accessed using $_GET array. So,

    echo $_GET['email'];
    

    will extract the emails from urls.

    answered Jul 14, 2012 at 3:29

    hjpotter92hjpotter92

    76.2k34 gold badges137 silver badges176 bronze badges

    3

    Use the parse_url[] and parse_str[] methods. parse_url[] will parse a URL string into an associative array of its parts. Since you only want a single part of the URL, you can use a shortcut to return a string value with just the part you want. Next, parse_str[] will create variables for each of the parameters in the query string. I don't like polluting the current context, so providing a second parameter puts all the variables into an associative array.

    $url = "//mysite.com/test/1234?email=&testin=123";
    $query_str = parse_url[$url, PHP_URL_QUERY];
    parse_str[$query_str, $query_params];
    print_r[$query_params];
    
    //Output: Array [ [email] =>  [testin] => 123 ] 
    

    answered Jul 14, 2012 at 4:01

    JCottonJCotton

    11.5k5 gold badges53 silver badges57 bronze badges

    As mentioned in another answer, the best solution is using parse_url[].

    You need to use a combination of parse_url[] and parse_str[].

    The parse_url[] parses the URL and return its components that you can get the query string using the query key. Then you should use parse_str[] that parses the query string and returns values into a variable.

    $url = "//example.com/test/1234?basic=2&email=";
    parse_str[parse_url[$url]['query'], $params];
    echo $params['email']; // 
    

    Also you can do this work using regex: preg_match[]

    You can use preg_match[] to get a specific value of the query string from a URL.

    preg_match["/&?email=[[^&]+]/", $url, $matches];
    echo $matches[1]; // 
    

    preg_replace[]

    Also you can use preg_replace[] to do this work in one line!

    $email = preg_replace["/^https?:\/\/.*\?.*email=[[^&]+].*$/", "$1", $url];
    // 
    

    answered Nov 11, 2018 at 9:49

    MohammadMohammad

    20.6k15 gold badges53 silver badges80 bronze badges

    1

    Use $_GET['email'] for parameters in URL. Use $_POST['email'] for posted data to script. Or use _$REQUEST for both. Also, as mentioned, you can use parse_url[] function that returns all parts of URL. Use a part called 'query' - there you can find your email parameter. More info: //php.net/manual/en/function.parse-url.php

    answered Jul 14, 2012 at 3:56

    1

    You can use the below code to get the email address after ? in the URL:

    Chủ Đề