如何用PHP将原始json字符串存储在cookie中?

时间:2015-09-14 14:45:12

标签: php arrays json

我试图将一个json字符串存储在cookie中,但是,特殊字符,例如; {"":""}被编码。

我尝试了setrawcookie(),但它并没有存储多个属性值。

$array = array('test' => 'value', 'anothertest' => 'not stored');

setrawcookie($this->cookie_customs_name, stripslashes(json_encode($array)), 
    strtotime($this->cookie_life_time), $this->cookie_path, $this->cookie_domain);

我在这里做错了什么?

此外,是否可以使用setcookie()方法实现此目的?

1 个答案:

答案 0 :(得分:3)

使用setcookie()时,应自动转义特殊字符。一旦检索到cookie,您应该只需要删除斜杠。

$array = array(....);

setcookie($this->cookie_customs_name, json_encode($array), ...);

检索cookie时:

$cookie = stripslashes($_COOKIE[$this->cookie_customs_name]);
$cookie = json_decode($cookie);

未经测试,但应该是所有需要的。