Мы просто переместили наш веб-сервер на экземпляр 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 серверах, использующих одинаковую кодовую базу
Я думаю, что в вашем коде есть ошибка.
Попробуйте этот код:
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}
Других решений пока нет …