php的post中提交陣列引數

2021-06-03 07:44:02 字數 953 閱讀 4568

首先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...