js和php中数组序列化(serialize和unserialize)

上一篇 / 下一篇  2008-04-21 15:38:26 / 个人分类:PHP

    对于url中参数值的传递,在数组方面可能显得无能为力。但在php中,我们可以使用serialize()将数组序列化,得到一个字符串,这样就可以很轻易的传递了。当得到该字符串后,我们使用unserialize()将这个字符串反序列化,得到原来的数组。

    然而,我们在js和js或者js和php中怎么传递数组呢?因为在js中,没有这样(serialize)的函数,所以我们只有使用自定义的函数将数组转化为字符串,这样虽然也能实现,但运行效率却降低了。

    在ajax中,我们可以使用xml标准数据存储格式进行数据传递,但如果只是传递简单的比如“0”,“1”之类的,根本用不着xml那样复杂的格式,那样反而降低了效率。对于简单的数组,我们也不必先按照xml死板的格式封装数据,而只需要使用函数serialize()将它序列化,然后通过xmlhttprequest返回给客户端。在客户端,因为是js处理,所以不能用php现成的unserialize()函数来将它反序列化,于是需要引用到两个js文件:utf.js(编码转换)和Phpserializer.js(封装serialize和unserialize函数)。这两个文件网上可以下载到。

    具体用法:

<scrīpt src="./utf.js"></scrīpt>

<scrīpt src="./Phpserializer.js"></scrīpt>

    在服务器端:$arr是从数据库查询的记录数组。$arr=serialize($arr);

    客户端:var s=xmlHttpRequest.responseText;

           var a=unserialize(s);

 这样,a这个数组和$arr是完全一样的。数组传递原来也这么简单。


TAG: PHP php 函数 数组

引用 删除 Guest   /   2008-05-16 13:27:29
评 一品
 

评分:0

我来说两句

显示全部

:loveliness: :handshake :victory: :funk: :time: :kiss: :call: :hug: :lol :'( :Q :L ;P :$ :P :o :@ :D :( :)

日历

« 2008-12-04  
 123456
78910111213
14151617181920
21222324252627
28293031   

数据统计

  • 访问量: 13264
  • 日志数: 17
  • 图片数: 16
  • 视频数: 62
  • 书签数: 4
  • 建立时间: 2007-09-12
  • 更新时间: 2008-11-20

RSS订阅

Open Toolbar