Jan
8
平常我们在设置数组时都是这样设置的
setcookie('var[a]','1');
这样设置如果是一两个下标这样子还可以凑和着用,但如果要设置一个比较复杂的数组,那这样设置实在是太麻烦了。
所以我需要可以直接把数据设置到cookie上的函数。
function MyCookie($var,$value='',$lifetime='Y')
{
if($value!='')
{
$value=base64_encode(serialize($value));
}
if($lifetime=='D')
{
$lifetime=time()+86400;
}
setcookie($var,$value,$$lifetime);
}
function GetCookie($var)
{
$value='';
if(array_key_exists($var,$_COOKIE)
{
$value=$_COOKIE[$var];
$value=unserialize(base64_decode($value));
}
return $value;
}
在设置cookie时是将数据先经过serialize将数据变成一个字符串,然后再经过base64_encode转化成一个没特殊符号的字符串。把这个字符串设置到cookie中。然后在得到cookie的数据时用getcookie函数取回对应的数据。
这样做的好处正如我之前说的,可以很方便得把数组甚至对像都保存在cookie中。方便进行设置及调用。
当然也会有不足的地方,那就是cookie可以保存的数据量会大大减小,因为保存了很多用于定义数据属性的内容。
setcookie('var[a]','1');
这样设置如果是一两个下标这样子还可以凑和着用,但如果要设置一个比较复杂的数组,那这样设置实在是太麻烦了。
所以我需要可以直接把数据设置到cookie上的函数。
function MyCookie($var,$value='',$lifetime='Y')
{
if($value!='')
{
$value=base64_encode(serialize($value));
}
if($lifetime=='D')
{
$lifetime=time()+86400;
}
setcookie($var,$value,$$lifetime);
}
function GetCookie($var)
{
$value='';
if(array_key_exists($var,$_COOKIE)
{
$value=$_COOKIE[$var];
$value=unserialize(base64_decode($value));
}
return $value;
}
在设置cookie时是将数据先经过serialize将数据变成一个字符串,然后再经过base64_encode转化成一个没特殊符号的字符串。把这个字符串设置到cookie中。然后在得到cookie的数据时用getcookie函数取回对应的数据。
这样做的好处正如我之前说的,可以很方便得把数组甚至对像都保存在cookie中。方便进行设置及调用。
当然也会有不足的地方,那就是cookie可以保存的数据量会大大减小,因为保存了很多用于定义数据属性的内容。