本篇内容主要讲解“PHP中如何处理相同name值的表单数据”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“PHP中如何处理相同name值的表单数据”吧!
php提供原始的访问输入/输出流的方法,POST的数据可以通过php://input来获取。
php://input 是个可以访问请求的原始数据的只读流。 POST 请求的情况下,最好使用 php://input 来代替 $HTTP_RAW_POST_DATA,因为它不依赖于特定的 php.ini 指令。 而且,这样的情况下 $HTTP_RAW_POST_DATA 默认没有填充, 比激活 always_populate_raw_post_data 潜在需要更少的内存。 enctype=”multipart/form-data” 的时候 php://input 是无效的。
php://input 打开的数据流只能读取一次; 数据流不支持 seek 操作。 不过,依赖于 SAPI 的实现,请求体数据被保存的时候, 它可以打开另一个 php://input 数据流并重新读取。 通常情况下,这种情况只是针对 POST 请求,而不是其他请求方式,比如 PUT 或者 PROPFIND。
所以用php获取相同name值的表单数据的思路可以是这样,1,通过php://input获取原始的POST数据; 2,对数据进行处理合并; 3, 重新把处理过的值赋给系统变量$_POST;
下面是定义的一个函数:
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来获取处理之后各个表单的数据。
到此,相信大家对“PHP中如何处理相同name值的表单数据”有了更深的了解,不妨来实际操作一番吧!这里是亿速云网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!
亿速云「云服务器」,即开即用、新一代英特尔至强铂金CPU、三副本存储NVMe SSD云盘,价格低至29元/月。点击查看>>
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。