2013-07-12 74 views
0

正如您所知,PHP使用_替換了$_POST$_GET鍵中的點和空格。PHP解析POST數據

實施例:

<input name="foo bar" /> 

變得$_POST['foo_bar']發送到服務器,而不是$_POST['foo bar']後。

你能指點我一個腳本,即使深度爲(name="fo.o[bar][12][]")的數組也可以正確處理這個腳本嗎?替換。在發送帶有字符的表單之前,由於帖子來自外部不可編輯的來源,因此不能使用該選項。

解決方案應處理原始數據。

+2

你爲什麼要經歷所有的麻煩? – DevZer0

+0

只是不要使用空格和點...即使源是外部的,HTML也可以被操縱 –

回答

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