首先,我不是很熟悉cookies,但我知道它们是如何工作的。 我已经看过很多使用普通PHP代码的不同教程,但我正在寻找一个如何使用symfony语法在cookie中存储数组的可靠示例:
$this->getResponse()->setCookie('myCookie', $data);
你不能只传入一个数组,因为它需要一个字符串。 是唯一能够首先序列化数组的方法吗?
将数据存储在Cookie中是否还有其他选项?
答案 0 :(得分:3)
如果数组是唯一要存储的主题,您可以将数组转换为Cookie中的一组键/值:
$this->getResponse()->setCookie('myCookie[0]', $data1);
$this->getResponse()->setCookie('myCookie[1]', $data2);
答案 1 :(得分:3)
如果您确实需要将其存储在cookie中而不是存储在会话中,则可以使用序列化:
$this->getResponse()->setCookie('myCookie', serialize($data));
$data = unserialize($this->getRequest()->getCookie('myCookie'));
答案 2 :(得分:2)
您应该将数据存储在会话中,而不是cookie中。
PHP自动支持;只需将您的数据放在$_SESSION['key']
中,它就会在该用户的页面加载过程中保持不变。
在幕后,PHP在客户端上设置了PHPSESSID
cookie,并使用它来查找Web服务器上的数据。与使用cookie相比,这有两个明显的好处。
有关详情,请参阅the PHP documentation on sessions。