您当前位置: 首页 » 敏感函数 » parse_str()

parse_str()

2017年2月22日 | 发表评论(0) 查看评论

parse_str()函数的作用是将字符串解析成多个变量

如果 str 是 URL 传递入的查询字符串(query string),则将它解析为变量并设置到当前作用域,但他在注册变量前并不验证该变量是否已经存在,所以会直接覆盖掉已有的变量。

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

其中$str是必须的,代表要解析注册成变量的字符串,形式为“a=1”,经过parse_str()后会注册变量$a,并赋值为1,第二个参数$arr是数组,当第二个参数存在时,注册的变量会放到这个数组里,如果原本存在相同的键名,则覆盖掉原有的键值。

一、变量覆盖

以上代码输出am0s.com,可以看到am0s.com成功覆盖了www.am0s.com

二、变量未初始化

当传入的第一个值会数组时,会报错并返回数组,导致变量未初始化,如果使用第二个参数的话,该变量将不会被赋值。

当提交http://127.0.0.1/test/test.php?b=a[]  将报错,返回一个数组