Перешёл на версию php5.5 (PHP 5.5.3-1ubuntu2.1), в приложении ошибка, функция json_encode не существует, как так?
ErrorException [ Fatal Error ]: Call to undefined function json_encode()
|
Перешёл на версию php5.5 (PHP 5.5.3-1ubuntu2.1), в приложении ошибка, функция json_encode не существует, как так? ErrorException [ Fatal Error ]: Call to undefined function json_encode()
|
|||
|
|
Сразу оговорюсь, проблема решается установкой php5-json, решение в самом конце. Но, интересно, в чём же дело? Всё дело в конфликте лицензии json extension и лицензии php5.5. JSON extension был удалён из дистрибутива php 5.5 (и некоторых других дистрибутивов), т.к. в его лицензии сказано:
Что означает: json должен использоваться для благих целей, не для зла. В то время php является свободным ПО с открытым исходным кодом, в лицензии которого сказано:
Что означает: свободное использование php для любых целей. Автор JSON.org “вежливо отказался” исправлять пункт "Not for evil" в лицензионном соглашении. В ответ авторы PHP удалили PHP JSON расширение с PHP 5.5rc2. Решением является поставить json отдельным пакетом: sudo apt-get install php5-json После чего остаётся рестартануть ваш PHP и пользоваться старыми добрыми функциями json_encode, json_decode. |
|||
|