我知道您可以通过parse_str()
向数组添加值,如下所示:
parse_str( 'a[]=1&a[]=2&a[]=3' );
parse_str( 'a[0]=1&a[1]=2&a[2]=3' );
这两者都产生:
Array (
[0] => 1
[1] => 2
[2] => 3
)
我希望生成一个像这样的数组:
parse_str( 'a[]=1,2,3' );
有没有办法做到这一点,所以我不需要每次都输入a[i]=
?
答案 0 :(得分:2)
请勿使用parse_str()
,除非您非常确定您正在做什么。 (下面解释。)相反,我会建议像JSON这样的东西,它不会改变意外的变量,相当快,标准化,更容易生成/消费。
$str = '{"items":[1,2,3]}'
$obj = json_decode($data);
var_export($obj->items);
收率:
array (
0 => 1,
1 => 2,
2 => 3,
)
例如,试试这个:
$input = '_SERVER[DOCUMENT_ROOT]=/foo';
parse_str($input);
echo($_SERVER['DOCUMENT_ROOT']);
哇,有人设法改变了存储服务器配置数据的变量之一。这可能很容易破坏内容管理代码,然后将文件保存到错误的位置,或绕过“必须是”检查的子文件夹。