json — php smarty2 json_decode возвращает другое значение

Мы просто переместили наш веб-сервер на экземпляр AWS EC2 и получили странную проблему.

Мы используем smarty2 и php5.3 на Centos 6 как на EC2, так и на нашем старом выделенном сервере (конфигурации php.ini и httpd также перенесены в EC2)
Вот данные и код json:

$ json = «{» crawl_url «:» https://google.com/ «,» status «:» OK «,}»

$ smarty-> assign («data», $ json);

представление шаблона:

{назначить переменную = значение tmp = $ data | json_decode: 1}

{$ Tmp.status}

Результат:

на старом выделенном сервере: он отображает «ОК», как и ожидалось

на сервере EC2: отображается «{» // не знаю почему

Обратите внимание, что магическая кавычка отключена как на сервере, так и на 2 серверах, использующих одинаковую кодовую базу

1

Решение

Я думаю, что в вашем коде есть ошибка.

Попробуйте этот код:

PHP:

<?php

$json = [
"crawl_url" => "https://google.com/",
"status" => "OK"];

$smarty->assign("data", json_encode($json));

?>

Smarty:

{assign var=tmp value=$data|json_decode:1}

{$tmp|var_dump}
{$tmp.status|var_dump}
0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]