Home  >  Article  >  Backend Development  >  Code example for php to obtain the parameters of each part of the URL

Code example for php to obtain the parameters of each part of the URL

不言
不言forward
2019-04-12 11:21:442920browse

The content of this article is about the code examples for php to obtain various parameters of the URL. It has certain reference value. Friends in need can refer to it. I hope it will be helpful to you.

URL handles several key functions parse_url, parse_str and http_build_query

parse_url()

This function can parse the URL and return its components. It is used as follows:

array parse_url(string $url)

This function returns an associative array containing the various components of the existing URL. If one of these components is missing, no array entry will be created for this component. The components are:

  • scheme - such as http
  • host - such as localhost
  • port - such as 80
  • user
  • pass
  • path - such as /parse_str.php
  • query - after the question mark? such as id=1&category=php&title=php-install
  • fragment - after the hash symbol

#This function does not mean that the given URL is valid, it just separates the parts in the list above. parse_url() accepts incomplete URLs and tries to parse them correctly. This function has no effect on relative path URLs.

<?php
    $url = "http://52php.cnblogs.com/welcome/";
    $parts = parse_url($url);
     
    print_r($parts);
?>

The program running result is as follows:

Array
(
    [scheme] => http
    [host] => 52php.cnblogs.com 
    [path] => /welcome/
)
<?php
    $url = &#39;http://username:password@hostname/path?arg=value#anchor&#39;;
    print_r(parse_url($url));
    echo &#39;<br />&#39;;
    echo parse_url($url, PHP_URL_PATH);
?>

##Program output:

Array
(
    [scheme] => http
    [host] => hostname
    [user] => username
    [pass] => password
    [path] => /path
    [query] => arg=value
    [fragment] => anchor
)

You can see that it can be easily decomposed Each part of a URL, it is easy to extract the specified parts, such as:

echo parse_url($url, PHP_URL_PATH);

is to set the following parameters in the second parameter: PHP_URL_SCHEME, PHP_URL_HOST, PHP_URL_PORT, PHP_URL_USER, PHP_URL_PASS, PHP_URL_PATH, PHP_URL_QUERY or PHP_URL_FRAGMENT.

parse_str()

parse_str is used to parse the query string in the URL, that is, the string value that can be obtained through $_SERVER['QUERY_STRING']. If we The requested URL is http://localhost/parse_str.php?id=1&category=php&title=php-install, then the value returned by $_SERVER['QUERY_STRING'] is id=1&category=php&title=php-install, and this form The string happens to be parsed into an associative array using parse_str.

Usage is as follows:

void parse_str(string $str [, array &$arr ])

This function receives two parameters, $str is the string that needs to be parsed , and the optional parameter $arr is the variable name where the array value generated after parsing is stored. If you ignore the optional parameter, you can directly call variables like $id, $category, and $title. The script below simulates a GET request.

<?php
<a href="http://localhost/parse_str.php?id=1&category=php&title=php-install">Click Here</a>
$query_str = $_SERVER[&#39;QUERY_STRING&#39;];
parse_str($query_str); /* 这种方式可以直接使用变量$id, $category, $title */
parse_str($query_str, $query_arr);
?>
<pre class="brush:php;toolbar:false"><?php print_r($query_arr); ?>

?> /* 运行结果 */ Array ( [id] => 1 [category] => php [title] => php-install ) 1 php php-install

http_build_query Is to convert an array into a url? The following parameter string will be automatically processed by urlencode

string http_build_query (array formdata [, string numeric_prefix])

Add a subscript to the array if there is no specified key or the key is a number

The above is the detailed content of Code example for php to obtain the parameters of each part of the URL. For more information, please follow other related articles on the PHP Chinese website!

Statement:
This article is reproduced at:segmentfault.com. If there is any infringement, please contact admin@php.cn delete