如您所知,PHP用 _替换$_POST
和键中的点和空格。$_GET
例子:
<input name="foo bar" />
发送到服务器后变为$_POST['foo_bar']
而不是$_POST['foo bar']
.
您能否指出一个脚本,即使使用具有深度的数组也可以正确处理此问题(name="fo.o[bar][12][]")
?更换 . 在发送带有字符的表单之前不是一个选项,因为帖子来自外部不可编辑的来源。
解决方案应处理原始帖子数据。
如您所知,PHP用 _替换$_POST
和键中的点和空格。$_GET
例子:
<input name="foo bar" />
发送到服务器后变为$_POST['foo_bar']
而不是$_POST['foo bar']
.
您能否指出一个脚本,即使使用具有深度的数组也可以正确处理此问题(name="fo.o[bar][12][]")
?更换 . 在发送带有字符的表单之前不是一个选项,因为帖子来自外部不可编辑的来源。
解决方案应处理原始帖子数据。
这不是您问题的算法解决方案,但它会解决您的问题。
有一些库旨在使处理请求数据更加简单。其中之一是 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
我为此编写了一些代码,有点hacky,可能更有效但有效。