php post方式提交数组参数的例子

发布时间:2019-10-08编辑:脚本学堂
有关php post方式提交数组参数的方法,有关php数组序列化与反序列化的例子,具体参考本文实例。

php post方式提交数组参数

php从页面传送数组到服务端a,要在页面上多个空间同名,而且对于名称有要求,那就是 name="aa[ ]"。
注意,这里要多加一个数组的符号,这样才能在服务端a取到,$_POST[aa]得到的为数组。

更深层的问题,假设现在需要对post中的参数进行处理后,再传送给另外一个服务端,对于参数aa,应该怎么传递呢?

如果不做什么处理,拼装完post请求后,服务端b获取到的永远只是Array,无法取到实际值。

解决方法:
现在服务端a进行序列化,然后在服务端b接收后进行反序列化。这样反序列化后的值就是一个数组了,和a段获取到的一样。

序列化
 

<p> $_POST["aa"] =serialize($_POST[aa]);</p> 

反序列化
 

$a =  "a:2:{i:0;s:1:"1";i:1;s:1:"2";}"; 
var_dump(unserialize($a)); 

结果:
array(2) { 
  [0]=> 
  string(1) "1" 
  [1]=> 
  string(1) "2" 

而在post中获取到的序列化后的参数是有进行添加过转义符的,获取后需要去掉,然后才能反序列化成功。
 

$bb = $_POST["aa" 
$bb = str_replace("", '', $bb); 
var_dump(unserialize($a)); 
 

 
另一种问题:
可以直接把数组值传递给页面的某一空间,提交给服务端。
这种情况同样需要序列化和反序列化。

代码:
 

<input type="hidden" name="aa" value="<?php echo base64_encode(serialize($array));?>"  /> 
var_dump(base64_decode(unserialize({1} POST['post_data']))); 

这个base64_encode是给中文编码吗?