存储在cookie中的JSON返回不可解码的

时间:2018-04-24 15:37:19

标签: php arrays json wordpress

我的wordpress网站正在将一些有用的JSON存储在cookie中。当我检索并解码它时,它返回NULL。我看过其他似乎认为是UTF-8问题的帖子。我不认为我可以因为wordpress而改变它。有没有更好的方法来解决这个问题,而不是用字符串替换额外的引号/反斜杠/等?

 $ckData = array("initialTime" => $initialTime,"cpCode" => $cpData[0], "cpID" =>cpData[1],"cpExpiry" => $cpExpiry);
 $ckDataJSON = json_encode($ckData, JSON_UNESCAPED_SLASHES);
setcookie( '_thecookie', $ckDataJSON, $ckExpiry, '/', 'mysitexyz.com', true, false);

它从cookie返回: string(68)“{\”initialTime \“:1524240724,\”cpCode \“:null,\”cpExpiry \“:1524241624}”

当通过json_decode传递时返回NULL

1 个答案:

答案 0 :(得分:1)

您的服务器似乎在启用Magic Quotes的5.4.0之前运行旧版本的PHP,您应该升级。

您需要去除有效JSON的斜杠:

$result = json_decode(stripslashes($cookie));