您的位置:

深入理解PHP函数parse_str

一、parse_str函数简介

PHP函数parse_str用于解析字符串,并将变量赋值给数组。该函数的语法如下:

void parse_str (string $str, array &$arr);

其中,$str代表要解析的字符串,$arr代表可选的缓冲数组。

二、解析字符串

parse_str函数的主要作用就是解析字符串,并将其中的变量名和变量值存储到数组中。下面的代码示例演示了如何使用parse_str函数解析字符串:

$queryString = "name=John+Doe&age=35";
parse_str($queryString, $output);
print_r($output);

以上代码输出结果如下:

Array
(
    [name] => John Doe
    [age] => 35
)

可以看到,字符串"name=John+Doe&age=35"被成功解析,并存储到了数组$output中。

三、处理复杂字符串

parse_str函数同样可以用于解析复杂的字符串,如下面的示例:

$queryString = "people[0][name]=John&people[0][age]=35&people[1][name]=Jane&people[1][age]=30";
parse_str($queryString, $output);
print_r($output);

以上代码输出结果如下:

Array
(
    [people] => Array
        (
            [0] => Array
                (
                    [name] => John
                    [age] => 35
                )

            [1] => Array
                (
                    [name] => Jane
                    [age] => 30
                )

        )

)

可以看到,字符串"people[0][name]=John&people[0][age]=35&people[1][name]=Jane&people[1][age]=30"被成功解析,并存储到了数组$output中。

四、处理特殊字符

parse_str函数同样可以处理特殊字符,如下面的示例:

$queryString = "name=John%20Doe&age=35";
parse_str($queryString, $output);
print_r($output);

以上代码输出结果同解析字符串的示例。

五、解析到已有数组

parse_str函数还可以将解析字符串后存储到已有数组中,如下面的示例:

$queryString = "name=John+Doe&age=35";
$person = array();
parse_str($queryString, $person);
print_r($person);

以上代码输出结果同解析字符串的示例。

六、总结

parse_str函数可以解析复杂的字符串,并将其中的变量名和变量值存储到数组中,同时也可以处理特殊字符,并且支持将解析结果存储到已有数组中。