php使用parse_str实现查询字符串解析到变量中的方法

使用parse_str函数可以将查询字符串解析到变量中。该函数的原型如下:

使用parse_str函数可以将查询字符串解析到变量中。该函数的原型如下:

void parse_str (string $str, array &$result)

其中,$str参数为待解析的查询字符串,$result参数是一个引用,表示解析结果将存放在此变量中。以下是使用parse_str函数的完整步骤:

  1. 首先,通过$_SERVER['QUERY_STRING']获取到当前请求 URL 中的查询字符串,比如:

php
$query_string = $_SERVER['QUERY_STRING'];

  1. 然后,将查询字符串传入parse_str函数,并作为第二个参数传入一个数组,以将解析结果存储在该数组中:

php
$vars = array();
parse_str($query_string, $vars);

在上面的代码中,我们定义了一个名为$vars的空数组,然后使用parse_str函数将查询字符串解析到此数组中。最终,$vars数组中就包含了查询字符串中的所有参数及其值。

另外,由于parse_str函数将参数名和值都解析到一个数组中,因此可以通过使用 extract函数来快速将解析结果存储到变量中。例如:

parse_str($query_string, $vars);
extract($vars);

下面给出两个示例说明:

示例1:解析简单查询字符串

假设当前请求 URL 中包含以下查询字符串:

page=2&sort=title&order=asc

可以使用以下代码将其解析到一个数组中:

$query_string = 'page=2&sort=title&order=asc';
$vars = array();
parse_str($query_string, $vars);
var_dump($vars);

输出结果为:

array(3) {
  ["page"]=>
  string(1) "2"
  ["sort"]=>
  string(5) "title"
  ["order"]=>
  string(3) "asc"
}

示例2:利用extract函数快速将解析结果存储到变量中

假设当前请求 URL 中包含以下查询字符串:

name=Tom&age=24&email=tom@example.com

可以使用以下代码将其解析到多个变量中:

$query_string = 'name=Tom&age=24&email=tom@example.com';
$vars = array();
parse_str($query_string, $vars);
extract($vars);
echo $name;   // 输出:Tom
echo $age;    // 输出:24
echo $email;  // 输出:tom@example.com

本文标题为:php使用parse_str实现查询字符串解析到变量中的方法

基础教程推荐