Home > Backend Development > PHP Tutorial > PHP parses the url and gets the parameters in the url and four ways to get the url parameters, four types of url_PHP tutorial

PHP parses the url and gets the parameters in the url and four ways to get the url parameters, four types of url_PHP tutorial

WBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWB
Release: 2016-07-12 09:06:29
Original
1432 people have browsed it

php parses the url and gets the parameters in the url and the four ways to get the url parameters. There are four ways to get the url parameters.

The following piece of code is php parsing the url and getting the parameters in the url. The code looks like this:

<&#63;php
$url = 'http://www.baidu.com/index.php&#63;m=content&c=index&a=lists&catid=6&area=0&author=0&h=0&region=0&s=1&page=1';
$arr = parse_url($url);
var_dump($arr);
$arr_query = convertUrlQuery($arr['query']);
var_dump($arr_query);
var_dump(getUrlQuery($arr_query));
/**
 * 将字符串参数变为数组
 * @param $query
 * @return array array (size=10)
          'm' => string 'content' (length=7)
          'c' => string 'index' (length=5)
          'a' => string 'lists' (length=5)
          'catid' => string '6' (length=1)
          'area' => string '0' (length=1)
          'author' => string '0' (length=1)
          'h' => string '0' (length=1)
          'region' => string '0' (length=1)
          's' => string '1' (length=1)
          'page' => string '1' (length=1)
 */
function convertUrlQuery($query)
{
  $queryParts = explode('&', $query);
  $params = array();
  foreach ($queryParts as $param) {
    $item = explode('=', $param);
    $params[$item[0]] = $item[1];
  }
  return $params;
}
/**
 * 将参数变为字符串
 * @param $array_query
 * @return string string 'm=content&c=index&a=lists&catid=6&area=0&author=0&h=0&region=0&s=1&page=1' (length=73)
 */
function getUrlQuery($array_query)
{
  $tmp = array();
  foreach($array_query as $k=>$param)
  {
    $tmp[] = $k.'='.$param;
  }
  $params = implode('&',$tmp);
  return $params;
}
Copy after login

The following uses four examples to introduce how to obtain php url parameters.

When the URL parameters are known, we can use $_GET to obtain the corresponding parameter information ($_GET['name']) according to our own situation; then, how to obtain the parameter information on the URL when the URL is unknown? Woolen cloth?

The first method is to use $_SERVER built-in array variable

The relatively primitive $_SERVER['QUERY_STRING'] is used to obtain URL parameters. Usually this variable is used to return data similar to this: name=tank&sex=1
If you need to include the file name, you can use $_SERVER["REQUEST_URI"] (return similar: /index.php?name=tank&sex=1)

The second method is to use the pathinfo built-in function

The code is as follows:

<&#63;php
$test = pathinfo("http://localhost/index.php");
print_r($test);
/*
Copy after login

The results are as follows

Array
(
   [dirname] => http://localhost //url的路径
   [basename] => index.php //完整文件名
   [extension] => php //文件名后缀
   [filename] => index //文件名
)
*/
&#63;>
Copy after login

The third method is to use the parse_url built-in function

The code is as follows:

<&#63;php
$test = parse_url("http://localhost/index.php&#63;name=tank&sex=1#top");
print_r($test);
/*
Copy after login

The results are as follows

Array
(
   [scheme] => http //使用什么协议
   [host] => localhost //主机名
   [path] => /index.php //路径
   [query] => name=tank&sex=1 // 所传的参数
   [fragment] => top //后面根的锚点
)
*/
&#63;>
Copy after login

The fourth method is to use the basename built-in function

The code is as follows:

<&#63;php
$test = basename("http://localhost/index.php&#63;name=tank&sex=1#top");
echo $test;
/*
Copy after login

The results are as follows

index.php&#63;name=tank&sex=1#top
*/
&#63;>
Copy after login

In addition, you can obtain the required value through regular matching. This method is more accurate and efficiency is not considered for the time being. . .
The following expands the regular processing method in practice:

The code is as follows:

<&#63;php
preg_match_all("/(\w+=\w+)(#\w+)&#63;/i","http://localhost/index.php&#63;name=tank&sex=1#top",$match);
print_r($match);
/*
Copy after login

The results are as follows

Array
(
  [0] => Array
    (
      [0] => name=tank
      [1] => sex=1#top
    )
  [1] => Array
     (
      [0] => name=tank
       [1] => sex=1
     )
   [2] => Array
    (
       [0] =>
      [1] => #top
    )
)
*/
&#63;>
Copy after login

www.bkjia.comtruehttp: //www.bkjia.com/PHPjc/1065159.htmlTechArticlephp parses the url and gets the parameters in the url and four ways to get the url parameters. The following code is for the four urls PHP parses the url and gets the parameters in the url. The code is as follows: php$url = 'http:...
Related labels:
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Latest Issues
php data acquisition?
From 1970-01-01 08:00:00
0
0
0
PHP extension intl
From 1970-01-01 08:00:00
0
0
0
How to learn php well
From 1970-01-01 08:00:00
0
0
0
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template