首先php中要想從頁面傳送陣列到服務端a,要在頁面上多個空間同名,而且對於名稱有要求,那就是 name="aa[ ]",注意這裡要多加乙個陣列的符號,這樣才能在服務端a取到,
$_post[aa]
得到的為陣列。
更深一層的問題是,假設我現在需要對post中的引數進行處理後,再傳送給另外乙個服務端,對於引數aa,應該怎麼傳遞呢?
如果不做什麼處理,拼裝完post請求後,服務端b獲取到的永遠只是array,無法取到實際值。
現在的解決方案是:現在服務端a進行序列化,然後在服務端b接收後進行反序列化。這樣反序列化後的值就是乙個陣列了,和a段獲取到的一樣。
序列化
$_post["aa"] =serialize($_post[aa]);
反序列化$a = "a:2:";
var_dump(unserialize($a));
結果是什麼呢:array(2)
而在post中獲取到的序列化後的引數是有進行新增過轉義符的,獲取後需要去掉,然後才能反序列化成功$bb = $_post["aa"
$bb = str_replace("\\", '', $bb);
var_dump(unserialize($a));
好了,這樣才是你要的結果。
當然,還有一種問題是,你可以直接把陣列值傳遞給頁面的某一空間,提交給服務端。這種情況同樣需要序列化和反序列化。
頁面
" />
var_dump(base64_decode(unserialize(
post['post_data'])));
不知道加了這個base64_encode有什麼作用,貌似是給中文編碼的吧?
表單中提交get和post的區別
1.get是從伺服器上獲取資料,post是向伺服器傳送資料。2.get是把引數資料 佇列加到提交表單的action屬性所指的url中,值和表單內各個字段一一對應,在url中可以看到。post是通過httppost機制,將表單內各 個字段與其內容放置在html header內一起傳送到action屬性...
php 模擬POST提交
php 模擬post提交 要post的資料 argv array var1 abc var2 你好嗎 1 構造要post的字串 foreach argv as key value 去除最後乙個 if params length strlen params 2 建立socket連線 fp fsocko...
php中curl模擬post提交多維陣列
今天需要用curl模擬post提交引數,請求同事提供的乙個介面 但是傳遞的引數中,有乙個引數的值為陣列,用普通的curl post 提交,會報錯誤 php notice array to string conversion in test functions.php on line 30 notic...