《PHP編程:PHP中使用php://input處理相同name值的表單數(shù)據(jù)》要點(diǎn):
本文介紹了PHP編程:PHP中使用php://input處理相同name值的表單數(shù)據(jù),希望對(duì)您有用。如果有疑問(wèn),可以聯(lián)系我們。
在去年10月份,我在博客中分析了php接收前臺(tái)name值相同的表單提交數(shù)據(jù)的處理的問(wèn)題,當(dāng)時(shí)說(shuō)的方案是為把name值改成數(shù)組類(lèi)型,php接收到之后,再對(duì)數(shù)組進(jìn)行合并處理.這樣做的缺點(diǎn)就是不完全兼容前臺(tái)表單,用戶(hù)必需要對(duì)表單作出更改,而系統(tǒng)需求是所有升級(jí)對(duì)用戶(hù)完全透明,所以說(shuō)這種方式還是不夠完美.PHP編程
經(jīng)過(guò)差不多一年時(shí)間的沉淀,發(fā)現(xiàn)php提供原始的拜訪(fǎng)輸入/輸出流的方法,POST的數(shù)據(jù)可以通過(guò)php://input來(lái)獲取:
PHP編程
所以用php獲取相同name值的表單數(shù)據(jù)的思路可以是這樣,1,通過(guò)php://input獲取原始的POST數(shù)據(jù); 2,對(duì)數(shù)據(jù)進(jìn)行處理合并; 3, 重新把處理過(guò)的值賦給系統(tǒng)變量$_POST; 下面是定義的一個(gè)函數(shù):PHP編程
function GET_SUBMIT(){ if(empty($_POST)) return $_POST; //判斷提交類(lèi)型 if($_SERVER["HTTP_CONTENT_TYPE"] != 'application/x-www-form-urlencoded'){ return $_POST; } //獲取POST原始值 $data= file_get_contents("php://input"); if(empty($data)) return $_POST; //開(kāi)始處理 $POST=array(); $list=explode('&',$data); foreach($list as $key=>$value){ //獲取POST的KEY和Value值 $postname=urldecode(substr($value,0, stripos($value,"="))); $postvalue=urldecode(substr($value,(stripos($value,"=")+1))); //對(duì)KEY值和Value值進(jìn)行處理 //去空格和[] $postname=trim($postname,' ,[,]'); $postvalue=trim($postvalue); if(array_key_exists($postname,$POST)){ $POST[$postname]=$POST[$postname]." ,".$postvalue; }else{ $POST[$postname]=$postvalue; } } return $POST; }
接下來(lái)只要在必要的地方使用”$_POST=GET_SUBMIT()”, 后面就可以通過(guò)$_POST來(lái)獲取處理之后各個(gè)表單的數(shù)據(jù).PHP編程
《PHP編程:PHP中使用php://input處理相同name值的表單數(shù)據(jù)》是否對(duì)您有啟發(fā),歡迎查看更多與《PHP編程:PHP中使用php://input處理相同name值的表單數(shù)據(jù)》相關(guān)教程,學(xué)精學(xué)透。維易PHP學(xué)院為您提供精彩教程。
轉(zhuǎn)載請(qǐng)注明本頁(yè)網(wǎng)址:
http://www.fzlkiss.com/jiaocheng/12468.html