我不确定这是否可能,但我正在尝试做一个收藏列表(使用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
)
答案 0 :(得分:2)
function has_item($key) {
return strpos($key, 'item_') !== false;
}
$_COOKIE = array_flip(array_filter(array_flip($_COOKIE), 'has_item'));
我在命令行上使用php文件对其进行了测试,结果正常。至于它是否适用于浏览器,我不能肯定地说,但我不明白为什么不。另一件需要考虑的事情是:那些其他饼干是坏的吗?它们可能是无害的跟踪cookie。
无论如何,解释:翻转带有值的键,以便保持值。您不能按键过滤,只能按值过滤。过滤没有“item_”的项目。然后再将其翻转,以便键和值正确。