首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

parse_str

(PHP 4, PHP 5, PHP 7)

parse_str - 将字符串解析为变量

描述

代码语言:javascript
复制
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()

代码语言:javascript
复制
<?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()名称变形

代码语言:javascript
复制
<?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 →

扫码关注腾讯云开发者

领取腾讯云代金券

http://www.vxiaotou.com