php 5.1.6 json_encode и codeigniter

Я создаю приложение codeigniter, которое использует json_encode для предоставления данных ajax во многих местах … сегодня я узнал, что на сервере есть php 5.1.6, который не поддерживает этот метод (или json_decode) .. что я могу сделать? пожалуйста помоги.

В upgradephp есть эмуляция json_encode (). Просто включите () этот скрипт, и вам не нужно ничего переписывать.
В качестве альтернативы вы можете использовать PEAR :: PHP_Compat . IIRC у него есть эмуляция этого тоже.
(Существует и другая альтернативная реализация, плавающая вокруг, но часто объектная, а не так быстро и предназначена для эмуляции основной функции.)

Вы можете настроить их с помощью auto_prepend_file= even. Если вы просто хотите, чтобы расширение JSON включено, есть и другие источники.

Вы можете использовать Services_JSON, если CodeIgniter может использовать его вместо функций json_ * PHP 5.2. Я знаю, что Zend_Framework имеет Zend_Json, который использует функции json_ *, если он доступен, в противном случае он использует свою собственную реализацию в PHP-коде userland в качестве резервной копии.

Конечно, если у вас есть доступ к серверу для компиляции PHP, вы можете попробовать расширение или обновление до PHP 5.2 (лучшее решение).

EDIT: Я бы взял маршрут уровней совместимости, как указано выше.

json_decode добавляется с (PHP 5> = 5.2.0, PECL json> = 1.2.0), он также поддерживается в вашей версии, вы должны попробовать:

Мне нужны json_encode и json_decode для сетки jquery. Я попробовал upgradephp, но json_encode, похоже, не работал с сеткой jquery, поэтому я удалил эту функцию из файла и добавил ее . json_decode, похоже, работает нормально.

Фактически, 5.1.6 поддерживает json_decode и json_encode, но они могут быть немного странными. Как и в случае, если вы подаете недействительный JSON, например, если у вас есть пустой ключ, он умрет без каких-либо предупреждений или ошибок. Но я использую json_encode и json_decode каждый день в среде 5.1.6. Это вполне возможно.