我正在使用php将产品ID存储在cookie中。 (这些是网上商店中最受欢迎的产品。)
我添加了很多产品作为收藏夹,所以我的cookie看起来像:12,55,120,43
我知道,$_COOKIE[$cookie_name]
不是数组。 (已通过is_array
函数检查)
如何从该Cookie中删除产品ID?我将要使用ajax删除的ID发送到此php文件:
if(isset($_POST['id']))
{
$id = intval($_POST['id']);
$cookie_name = "kedvenc_termek";
if(isset($_COOKIE[$cookie_name]))
{
echo $_COOKIE[$cookie_name];
}
}
答案 0 :(得分:0)
这应删除cookie或使cookie无效
// set the expiration date to one hour ago
setcookie($cookie_name, " ", time() - 3600);
?>
答案 1 :(得分:0)
取消设置您的Cookie:
unset($_COOKIE[$cookie_name]);
将Cookie设置为空:
setcookie($cookie_name, null, -1, '/');
答案 2 :(得分:0)
如果我了解您的要求,您有一个字符串存储在12,55,120,43
之类的cookie中,并且您想使用$_POST['id']
删除其中之一?
因为它是一个字符串,所以我认为最好的选择是preg_replace(),它比str_replace更具优势,您可以创建一个删除模式。
$id = $_POST['id'];
$cookie_name = "kedvenc_termek";
$_COOKIE[$cookie_name] = preg_replace("/\b(" . preg_quote($id) . ",)\b/", "", $_COOKIE[$cookie_name]);
echo $_COOKIE[$cookie_name];
如果要将新字符串存储在cookie中,请确保在回显该值之前执行此操作,因为在输出后无法设置cookie。