0

ご存じのように、PHP は$_POSTおよび$_GETキーのドットとスペースを _ に置き換えます。

例:

<input name="foo bar" /> 

$_POST['foo_bar']の代わりにサーバーに送信された後になります$_POST['foo bar']

深さのある配列でもこれを正しく処理できるスクリプトを教えてください(name="fo.o[bar][12][]")。を交換しています。投稿は外部の編集不可能なソースからのものであるため、文字を含むフォームを送信する前はオプションではありません。

ソリューションは生の投稿データを処理する必要があります。

4

2 に答える 2

1

これは問題に対するアルゴリズム的な解決策ではありませんが、問題は解決します。

リクエストデータの処理をより簡単にするために設計されたライブラリがあります。それらの 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 に答える