parse_str

(PHP 4, PHP 5, PHP 7, PHP 8)

parse_str将字符串解析成多个变量

说明

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

如果 string 是 URL 传递入的查询字符串(query string),则将它解析为变量并设置到当前作用域(如果提供了 result 则会设置到该数组里 )。

参数

string

输入的字符串。

result

如果设置了第二个变量 result, 变量将会以数组元素的形式存入到这个数组,作为替代。

警告

极度不建议 在没有 result 参数的情况下使用此函数, 并且在 PHP 7.2 中将废弃不设置参数的行为。

返回值

没有返回值。

更新日志

版本 说明
8.0.0 result 是必须项。
7.2.0 不带第二个参数的情况下使用 parse_str() 会产生 E_DEPRECATED 警告。

范例

示例 #1 parse_str() 的使用

<?php
$str 
"first=value&arr[]=foo+bar&arr[]=baz";

// 推荐用法
parse_str($str$output);
echo 
$output['first'];  // value
echo $output['arr'][0]; // foo bar
echo $output['arr'][1]; // baz

// 不建议这么用
parse_str($str);
echo 
$first;  // value
echo $arr[0]; // foo bar
echo $arr[1]; // baz
?>

由于 PHP 的变量名不能带「点」和「空格」,所以它们会被转化成下划线。 用本函数带 result 参数,也会应用同样规则到数组的键名。

示例 #2 parse_str() 名称改写

<?php
parse_str
("My Value=Something");
echo 
$My_Value// Something

parse_str("My Value=Something"$output);
echo 
$output['My_Value']; // Something
?>

注释

注意:

所有创建的变量(或者在设置第二个参数的情况下,返回数组里的值), 都已经 urldecode() 了。

注意:

要获取当前的 QUERY_STRING,可以使用 $_SERVER['QUERY_STRING'] 变量。 所以你可能想要阅读 来自 PHP 之外的变量这个章节。

注意:

本函数受 magic_quotes_gpc 设置的影响, 和 $_GET$_POST 在 PHP 中填充变量相似, parse_str() 也使用了同样的机制。

参见