根据cookie名称获取一系列php cookie

时间:2011-03-01 05:29:02

标签: php jquery cookies

我不确定这是否可能,但我正在尝试做一个收藏列表(使用cookies)。我可以使用jquery添加/删除cookie并使用php打印出我的cookie列表。但是,我的cookie数组有一些我不感兴趣的东西,我认为有些是可变的,所以我不能手动取消它。

这是我的cookie数组:

Array
(
    [ys-vmconfiguration-active] => s:ext-comp-1005
    [94106e70fc3234ce511b7b9bd5d5d9b0] => 639b623be5a68913a11421e23de05559
    [6fb7ca7b058abd27041a8b41fed8f368] => 54 D575B4211 B 8 E4110165741 D 2 B 610 3415F 45914 050 B A F12 A46 D5D5B1B1250434714 A17561158105C56 81A53 15C A5843 F1B
    [d5e8a24a0ca709537c5c26b3134af3b5] => 46aac9d9a4d6c6a1a74c529a43dd4187
    [item_225] => 225
    [item_6] => 6
    [item_123] => 123
    [item_19] => 19
)

^^有没有办法让所有以“item_”开头的cookie?

所以我的新cookie数组将是:

Array
(
    [item_225] => 225
    [item_6] => 6
    [item_123] => 123
    [item_19] => 19
)

1 个答案:

答案 0 :(得分:2)

function has_item($key) {
   return strpos($key, 'item_') !== false;
}
$_COOKIE = array_flip(array_filter(array_flip($_COOKIE), 'has_item'));

我在命令行上使用php文件对其进行了测试,结果正常。至于它是否适用于浏览器,我不能肯定地说,但我不明白为什么不。另一件需要考虑的事情是:那些其他饼干是坏的吗?它们可能是无害的跟踪cookie。

无论如何,解释:翻转带有值的键,以便保持值。您不能按键过滤,只能按值过滤。过滤没有“item_”的项目。然后再将其翻转,以便键和值正确。