PHP 設置Cookie值注意項


  Cookie 中的value值只能添加設置為String類型的字符串數據,但我們需要添加如數組,json串等其他類型的數據時,我們就要先對數據進行轉換,再存入Cookie里了。

  Cookie 存儲數組,cookie存儲數組類型的數據有多種方法,實質就是講數組轉換成字符串再存儲。

  第一種,將數組各個值用逗號拼接成字符串,隨后將字符串存入cookie。讀取時可以使用split()將字符串以逗號分割重新組成數組。

        $data = array(
            'a'=>'aaa',
            'b'=>'bbb',
            'c'=>'ccc'
        );
        $str = $data['a'].",".$data['b'].",".$data['c'];  //拼接成字符串
set_cookie('name',$str,3600); $cstr = $_COOKIE['name']; $cdata = split('[/,]',$cstr);

  第二種,和上一種方法類似,使用 implode() 講數組合並成一個字符串存入cookie,之后獲取cookie值再使用 explode() 將字符串分割后生成數組。注意,使用explode時要保證字符串的首位不能是空(空格),不然會出現warning錯誤。

        $data = array(
            'a'=>'aaa',
            'b'=>'bbb',
            'c'=>'ccc'
        );
        $str = implode(',',$data);

        set_cookie('name',$str,3600);
        $cstr = $_COOKIE['name'];
        $cdata = explode(',',$cstr);

  第三種,對數組進行編碼,之后獲取時再進行解碼。比如 serialize() 序列化和 unserialize() 反序列化操作。

        $data = array(
            'a'=>'aaa',
            'b'=>'bbb',
            'c'=>'ccc'
        );
        $str = serialize($data);

        set_cookie('name',$str,time()+3600);
        $cstr = $_COOKIE['name'];
        $cdata = unserialize($cstr);

  第四種,Cookie 存儲 json 字符串,使用 json_encode() 將數組轉換成json字符串,再將json字符串存儲到cookie中,最后獲取時使用 json_decode() 轉換回來即可。

        $data = array(
            'a'=>'aaa',
            'b'=>'bbb',
            'c'=>'ccc'
        );
        set_cookie('name',json_encode($data),time()+3600);

        $cstr = $_COOKIE['name'];
        $cdata = json_decode($cstr);

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2026 CODEPRJ.COM