0

如您所知,PHP用 _替换$_POST和键中的点和空格。$_GET

例子:

<input name="foo bar" /> 

发送到服务器后变为$_POST['foo_bar']而不是$_POST['foo bar'].

您能否指出一个脚本,即使使用具有深度的数组也可以正确处理此问题(name="fo.o[bar][12][]")?更换 . 在发送带有字符的表单之前不是一个选项,因为帖子来自外部不可编辑的来源。

解决方案应处理原始帖子数据。

4

2 回答 2

1

这不是您问题的算法解决方案,但它会解决您的问题。

有一些库旨在使处理请求数据更加简单。其中之一是 Symfony 的 Request 类:http: //api.symfony.com/2.0/Symfony/Component/HttpFoundation/Request.html

它包装了ParameterBag,所以很容易获取数据: http ://api.symfony.com/2.3/Symfony/Component/HttpFoundation/ParameterBag.html

基本用法是:

use Symfony\Component\HttpFoundation\Request;

$request = Request::createFromGlobals();
echo $request->get('parameter_name');

它也处理多维参数。

你可以阅读更多关于它的信息: http ://symfony.com/doc/current/components/http_foundation/introduction.html

于 2013-07-12T09:58:48.543 回答
0

我为此编写了一些代码,有点hacky,可能更有效但有效。

于 2013-07-12T12:05:45.187 回答