PHP

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 →