background image

php 多键值 cookie 操作的例子

本文介绍下,

php 中有关多键值 cookie 操作的例子,有需要的朋友参考下。

php 中,cookie 默认不能保存在数组中。

报错如下:
Warning: setcookie() expects parameter 2 to be string, array given in
但是

PHP 可以把同名且后面以[]结尾的 cookie 解析为数组。

分享二个实现

cookie 存数组的方法。

方法一:先用

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

组。
<?php
//存入  
$arr = array(1,2,3);  
$arr_str = serialize($arr);    
setcookie("a",$arr_str);  

//取出  
$arr_str = $_COOKIE['a'];  
$arr = unserialize($arr_str);
方法二:设定多键值

cookie,注意必须给键值

<?Php
$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 )
错误的写法:
<?Php
$arr=array(1,2,3);  
setcookie("a[]",$arr[0]);  
setcookie("a[]",$arr[1]);  
setcookie("a[]",$arr[2]);