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