探讨多键值cookie(php中cookie存取数组)的详解

yipeiwu_com7年前PHP代码库

cookie默认不能存数组,所以下面的写法是错误的。
报错如下:
Warning: setcookie() expects parameter 2 to be string, array given in
但是PHP可以把同名且后面以[]结尾的cookie解析为数组。在php里面实现cookie存数组的方法如下:

方法一:先用serialize序列化数组,再存入COOKIE   ,读出来时用unserialize得到原来的数组

方法二:设定多键值cookie,注意必须给键值

复制代码 代码如下:

$arr = array(1,2,3);  
setcookie("a[0]", $arr[0]);  
setcookie("a[1]", $arr[1]);  
setcookie("a[2]", $arr[2]); 

结果:数组所有元素都存到了。
数组长度 :3
Array ( [0] => 1 [1] => 2 [2] => 3 )

以下写法是错误的:
复制代码 代码如下:

$arr = array(1,2,3);  
setcookie("a[]", $arr[0]);  
setcookie("a[]", $arr[1]);  
setcookie("a[]", $arr[2]); 

结果:只存了最后一个元素
数组长度 :1
Array ( [0] => 3 )

相关文章

PHP5.4中json_encode中文转码的变化小结

在php5.4以前做json_encode的时候中文会被unicode编码,中文都会被编码,变成不可读的,类似“\u***”的格式,还会在一定程度上增加传输的数据量。 例如: 复制代码...

php多层数组与对象的转换实例代码

多层数组和对象转化的用途很简单,便于处理WebService中多层数组和对象的转化 简单的(array)和(object)只能处理单层的数据,对于多层的数组和对象转换则无能为力。 通过j...

php 的加密函数 md5,crypt,base64_encode 等使用介绍

不可逆的加密函数为:md5()、crypt() md5() 用来计算 MD5 哈稀。语法为:string md5(string str); crypt() 将字符串用 UNIX 的标准加...

php中explode的负数limit用法分析

本文实例讲述了php中explode的负数limit用法。分享给大家供大家参考。具体分析如下: explode -- 使用一个字符串分割另一个字符串,使之成为数组。 参数为: arr...

php+html5基于websocket实现聊天室的方法

本文实例讲述了php+html5基于websocket实现聊天室的方法。分享给大家供大家参考。具体如下: html5的websocket 实现了双向通信,折腾了几天弄了个聊天室,分享给大...