在数组中设置$ _cookie值

时间:2014-04-17 10:09:08

标签: php cookies

我有一个包含以下值的cookie:

2,3 personen klein,47.50,images/portfolio/portfolio-02.jpg,1|1,2 personen
kleurrijk,47.50,images/portfolio/portfolio-01.jpg,1|3,Sneeuwklokje,47.50,images/portfolio/portfolio-03.jpg,1

我使用时得到这个值:
echo $_cookie['cart'];

|是新行的分隔符,是新值的分隔符。

如何将这些值放在一个数组中,以便回显它的一部分,例如当我只想回显图像时。希望你们能给我一些提示。

3 个答案:

答案 0 :(得分:1)

$array = explode("|", $_COOKIE['cart']); 
foraech($array as & $element) {
   $element = explode(",", $element);
}

// example - echo an image
echo $array[1][3]

但说实话,你应该把它保存在$_SESSION中。你可以存储数组,对象,长字符串等,用户无法更改其内容

  • Cookie不适合存储复杂数据

  • 每个人都可以手动更改Cookie并导致安全问题

  • 每个Cookie限制4096个字节

答案 1 :(得分:0)

我完全赞同彼得。

Cookie是简单的文本文件。不要在Cookies中存储如上所述的任何数据!你有一个包含$_SESSION的好容器。它是一个全局关联数组,因此您可以存储$_SESSION['cart']等值。

无论你喜欢什么!

它比客户端电脑上的txt文件更安全!

请在此处阅读Sessions

答案 2 :(得分:0)


    $string = "2,3 personen klein,47.50,images/portfolio/portfolio-02.jpg,1|1,2 personen kleurrijk,47.50,images/portfolio/portfolio-01.jpg,1|3,Sneeuwklokje,47.50,images/portfolio/portfolio-03.jpg,1";

    $lines = explode('|', $string);

    $lines = array_map(function($a){
        return explode(',', $a);
    }, $lines);

    print_R($lines);