如何使用PHP或JavaScript删除特定的cookie前缀?

时间:2013-07-10 20:34:03

标签: php jquery codeigniter cookies grocery-crud

我正在使用codeigniter / grocerycrud,并且在选择排序列时,它会记住此订单,这为我提供了重新排序其他方向的唯一选项(至少在到期日期内)。我想创建一个按钮,只删除与排序相关的cookie。到目前为止,cookie的一个例子是......

hidden_​​sorting_4884b0e57a895f932a0a6f5657128eda

...并且所有用于排序的Cookie都以hidden_sorting_开头,因此有一个明确的排序按钮是有意义的。关于这是否可行的任何想法?对内置功能的深入研究空洞。

我可以用jQuery删除全名,如此......

$.cookie("hidden_sorting_4884b0e57a895f932a0a6f5657128eda", null);

但是前缀选择有问题。在jQuery中你可以做像......这样的事情。

$('input[products*="hidden_sorting_"]').val

如果我正在寻找输入,但是在cookie中获取它是我需要的。

1 个答案:

答案 0 :(得分:1)

试试这个:

<?php
session_start(); ob_start();
function destroyCookies($prefix){
  if(isset($_COOKIE)){
    foreach($_COOKIE as $i => $v){
      if(preg_match("/^$v/", $prefix)){
        setcookie($i, '', time()-3600); unset($_COOKIE[$i]);
      }
    }
  }
}
destroyCookies('hidden_sorting_');
ob_end_flush();
?>

您必须使用PHP ob_start()来确保您可以随时设置Cookie。