如何通过PHP将数组存储在cookie中?

How to store array in cookie by PHP?

我想在我的网站上建立一个简单的关注列表,让客户无需创建帐户即可收藏一些产品。

我看了这个题目说不能直接用base64编码存到cookie里。

此脚本通过单击按钮切换。如果产品已经在监视列表中,它将被删除,如果它不在监视列表中,它将被添加。

这是我试过的:

$p = "123456789"; // some product id    

$a = isset($_COOKIE['fav']) ? unserialize(base64_decode($_COOKIE['fav'])) : [] ;

if($p!==in_array($a)){
  $a[] = $p;
} else {
  if(($key=array_search($p,a))!==false){
    unset($a[$key]);
  }
}

$b = base64_encode(serialize($a));
setcookie('fav',$b,time()+3600*24,'/');

但是 cookie 没有设置。

if (!in_array($p, $a)) { // <- this is the right syntax
  $a[] = $p;
} else {
  if (($key = array_search($p, a)) !== false) {
    unset($a[$key]);
  }
}

如果你想要它,请键入保存它

if (!in_array($p, $a, true))