我正在尝试将嵌套数组存储在cookie中。我决定将数组存储为JSON字符串。但是,我收到了这个警告:
PHP警告:Cookie值不能包含以下任何一项',; \ fo \ r \ n \ 013 \ 014'在foobar.php中
是否建议在cookie中存储嵌套数组?
答案 0 :(得分:3)
答案 1 :(得分:2)
如果你有其他形式的持久性可用(db,sessions,memcache),我建议在那里存储真实数据。然后在cookie中放入一个唯一的标识符,可用于查找所需的数据。它更清洁,更安全。
答案 2 :(得分:2)
是否建议在cookie中存储嵌套数组?
是 - 不要。使用会话或其他句柄将其存储在服务器端。将数据存储在cookie中不仅存在格式化和范围问题,还存在文件大小限制。
下进行。
答案 3 :(得分:1)
我认为这不是一种干净的方式,但您可以urlencode
json_encode
d字符串将其存储在Cookie中。
编辑:Tom Haigh的方式当然更清晰(使用base64_encode)。
答案 4 :(得分:0)
$array = array();
$array[] = array(1,2,3);
$array[] = array('a','b','c');
setcookie("test",serialize($array));
只需序列化,效果很好。
你可以在你的cookie中得到它:
'test' => string 'a:2:{i:0;a:3:{i:0;i:1;i:1;i:2;i:2;i:3;}i:1;a:3:{i:0;s:1:"a";i:1;s:1:"b";i:2;s:1:"c";}}' (length=86)