JSON, сохраненный в cookie, возвращает не декодируемый - PullRequest
0 голосов
/ 24 апреля 2018

Мой 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 голосов
/ 24 апреля 2018

Ваш сервер работает под управлением старой версии PHP до 5.4.0 с Магические кавычки , вам нужно обновить.

Вам нужно удалить косую черту для допустимого JSON:

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