parse_str
parse_str
(PHP 4, PHP 5, PHP 7)
parse_str - 将字符串解析为变量
描述
void parse_str ( string $encoded_string [, array &$result ] )
解析encoded_string,就好像它是通过URL传递的查询字符串一样,并在当前作用域(如果提供结果时在数组中)设置变量。
参数
encoded_string
输入字符串。
result
如果第二个参数结果存在,则变量将作为数组元素存储在此变量中。
警告
使用这个没有结果参数的函数在PHP 7.2以上版本中是DISCOURAGED和DEPRECATED。
动态设置函数作用域中的变量与register_globals存在完全相同的问题。
阅读使用注册全局的安全性部分,解释为什么它是危险的。
返回值
没有值返回。
更新日志
版 | 描述 |
---|---|
7.2.0 | 不带第二个参数的parse_str()的使用现在会发出E_DEPRECATED通知。 |
例子
Example#1 使用parse_str()
<?php
$str = "first=value&arr[]=foo+bar&arr[]=baz";
// Recommended
parse_str($str, $output
echo $output['first']; // value
echo $output['arr'][0]; // foo bar
echo $output['arr'][1]; // baz
// DISCOURAGED
parse_str($str
echo $first; // value
echo $arr[0]; // foo bar
echo $arr[1]; // baz
?>
由于PHP中的变量名称中不能包含点和空格,因此这些变量将转换为下划线。 在结果参数中使用此函数的情况下,也同样适用于各个键名的命名。
示例#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()d。
注意
:要获得当前的QUERY_STRING
,可以使用变量$ _SERVER ['QUERY_STRING
']。另外,您可能需要阅读外部来源的变量部分。
注意
:magic_quotes_gpc设置会影响此函数的输出,因为parse_str()
使用与PHP用于填充$ _GET,$ _POST等变量的机制相同的机制。
扩展内容
- parse_url() - 解析URL并返回其组件
- pathinfo() - 返回有关文件路径的信息
- http_build_query() - 生成URL编码的查询字符串
- urldecode() - 解码URL编码的字符串
← ord
print →