php 5.1.6 json_encode и codeigniter - PullRequest
2 голосов
/ 25 мая 2010

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

Ответы [ 5 ]

8 голосов
/ 25 мая 2010

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

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

2 голосов
/ 25 мая 2010

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

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

РЕДАКТИРОВАТЬ: Я бы взял маршрут слоев совместимости, как упомянуто выше.

0 голосов
/ 12 апреля 2011

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

0 голосов
/ 25 мая 2010

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

0 голосов
/ 25 мая 2010

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...