清除PHP Cookies阵列

时间:2015-04-16 02:41:18

标签: php arrays cookies

我知道如何在数组中设置PHP cookie但是我可以在没有循环的情况下清除它吗? 例如,我正在设置这四个cookie

// set the cookies
setcookie("cookie[four]", "cookiefour");
setcookie("cookie[three]", "cookiethree");
setcookie("cookie[two]", "cookietwo");
setcookie("cookie[one]", "cookieone");

// after the page reloads, print them out
if (isset($_COOKIE['cookie'])) {
    foreach ($_COOKIE['cookie'] as $name => $value) {
       $name = htmlspecialchars($name);
       $value = htmlspecialchars($value);
       echo "$name : $value <br />\n";
    }
}
  

输出:
  四:cookiefour
  三:cookiethree
  二:cookietwo
  一:cookieone

要清除cookie,我使用以下循环

if (isset($_COOKIE['cookie'])) {
    foreach ($_COOKIE['cookie'] as $name => $value) {
        setcookie ("cookie[".$name."]", "", time() - 1);
    }
}

有没有办法可以在没有循环的情况下清除cookie?提前致谢

2 个答案:

答案 0 :(得分:3)

不,你几乎需要循环使用现有的cookie作为删除/过期cookie的方法,就像你在代码中通过setcookie一样,一次就是一个cookie。

答案 1 :(得分:1)

可以尝试

if (isset($_COOKIE['cookie'])) {
    setcookie ("cookie", array());
}

甚至

if (isset($_COOKIE['cookie'])) {
    setcookie ("cookie", array('one'=>'','two'=>'','three'=>'','four'=>'',));
}

如果您需要索引