Jan 8

在cookie设置数组--setcookie的优化 不指定

bkkkd , 19:42 , 开发应用 , 评论(0) , 引用(0) , 阅读(7268) , Via 本站原创 | |
平常我们在设置数组时都是这样设置的

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可以保存的数据量会大大减小,因为保存了很多用于定义数据属性的内容。
发表评论
表情
emotemotemotemotemot
emotemotemotemotemot
emotemotemotemotemot
emotemotemotemotemot
emotemotemotemotemot
打开HTML
打开UBB
打开表情
隐藏
记住我
昵称   密码   游客无需密码
网址   电邮   [注册]