2014-03-28 94 views
0

我已經看到了通過以多種方式捲曲選項後的數據,如與鍵值對的數組,像這樣的字符串:"username=user&password=pass"但我來到翻過一個不同類型的格式從而出現奇我也許有些人可以澄清這一點。它看起來如下:格式捲曲POST字符串

$sPost = "session[username_or_email]=$username&session[password]=$password&return_to_ssl=true&scribe_log=&redirect_after_login=%2F&authenticity_token=$authenticity_token"; 

curl_setopt($ch, CURLOPT_POSTFIELDS, $sPost); 

它爲什麼看起來這樣「session [username_or_email]」?

回答

2

某種形式的處理器將治療POST變量名稱用方括號像一個關聯數組。想象一下,你的職位是從一種形式來:

<form> 
    <input type="hidden" name="session[username_or_email]"> 
    <input type="hidden" name="session[password]"> 
</form> 

在PHP中,例如,這將被處理爲:

$_POST=array(
    'session' => array(
     'username_or_email' => whatever, 
     'password' => whatever 
    ) 
) 

這僅僅是通過約定。就HTTP POST本身而言,只要將它們看作是包含方括號的兩個不同的變量名稱即可。

+0

很好解釋說非常感謝你! – polymorph

1

這是因爲,當你分析它,它會被存儲爲一個數組。所以$_POST['session']將鍵數組和值

+0

謝謝。我會投票你們,但我還不能。 – polymorph

+1

沒有probs,我upvoted其他人 –

1

這是用來表示您的查詢字符串的關聯數組的符號。當通過PHP接收到請求字符串,它會採取價值一樣,並把他們變成所謂session一個陣列上,方括號中所列的關鍵。

例如,如果你手工建立數組,數組的聲明將是這個樣子:

$_POST = array(
    'session' => array(
     'username_or_email' => 'username', 
     'password' => 'password' 
    ), 
    'return_to_ssl' => true // etc. 
); 
+0

非常好解釋非常感謝你! – polymorph

+0

沒問題,開心我可以幫忙! – LartTyler