• 技术文章 >后端开发 >php教程

    php提交post数组参数实例分析_php技巧

    2016-05-16 20:02:51原创572

    本文实例分析了php提交post数组参数的用法。分享给大家供大家参考,具体如下:

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

    复制代码 代码如下:
    $_POST[aa]

    得到的为数组。

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

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

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

    序列化

    复制代码 代码如下:
    $_POST["aa"] =serialize($_POST[aa]);

    反序列化

    $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));
    
    

    好了,这样才是你要的结果。

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

    页面

    
    var_dump(base64_decode(unserialize(
    {1}

    POST['post_data'])));

    不知道加了这个base64_encode有什么作用,貌似是给中文编码的吧?

    希望本文所述对大家php程序设计有所帮助。

    声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn核实处理。
    上一篇:解决ThinkPHP下使用上传插件Uploadify浏览器firefox报302错误的方法_php技巧 下一篇:自己动手写 PHP MVC 框架(40节精讲/巨细/新人进阶必看)

    相关文章推荐

    • 手写PHP API框架(三)之反射介绍• 手写PHP API框架(二)之Composer的安装使用• 手写PHP API框架(一)之PSR规范• 聊聊php怎么让Swoole/Pool进程池实现Redis持久连接• 一文解析PHP元转分的错误示范(附代码实例)
    1/1

    PHP中文网