Я создаю приложение codeigniter, которое использует json_encode для предоставления данных ajax во многих местах ... сегодня я узнал, что на сервере есть php 5.1.6, который не поддерживает этот метод (или json_decode) .. что я могу сделать?? пожалуйста помоги.php 5.1.6 json_encode и codeigniter
ответ
Мне нужен json_encode и json_decode для сетки jquery. Я попробовал upgradephp, но json_encode, похоже, не работал с сеткой jquery, поэтому я удалил эту функцию из файла и добавил this one. json_decode, похоже, работает нормально.
json_decode
добавляется так (PHP 5> = 5.2.0, PECL JSON> = 1.2.0), он поддерживается в вашей версии тоже, вы должны дать ему попробовать :)
Там является эмуляцией json_encode() в upgradephp. Просто включите() этот скрипт, и вам не нужно ничего переписывать.
В качестве альтернативы вы можете использовать PEAR::PHP_Compat. IIRC у него есть эмуляция этого тоже.
(Есть further альтернативной реализации плавающей вокруг, но часто возражает против стиля и не так быстро, и предназначено для эмуляции функции ядра.)
Вы можете установить их с auto_prepend_file=
даже. Если вы просто хотите, чтобы расширение JSON включено, есть и другие источники.
Вы можете использовать Services_JSON, если CodeIgniter может использовать его вместо функций json_ * PHP 5.2. Я знаю, что Zend_Framework имеет Zend_Json, который использует функции json_ *, если он доступен, в противном случае он использует свою собственную реализацию в PHP-коде userland в качестве резервной копии.
Конечно, если у вас есть доступ к серверу для компиляции PHP, вы можете попробовать расширение или обновление до PHP 5.2 (лучшее решение).
EDIT: Я бы выбрал маршрут уровней совместимости, как указано выше.
Фактически, 5.1.6 поддерживает json_decode и json_encode, но они могут быть немного странными. Как и в случае, если вы подаете недействительный JSON, например, если у вас есть пустой ключ, он умрет без каких-либо предупреждений или ошибок. Но я использую json_encode и json_decode каждый день в среде 5.1.6. Это вполне возможно.
- 1. php 5.1.6 magic __toString метод
- 2. PHP json_encode и XSS
- 3. AngularJS и PHP json_encode
- 4. PHP json_encode() и Javascript
- 5. Kohana 3 под PHP 5.1.6
- 6. PHP Обновление с версии 5.1.6
- 7. PHP альтернативы 5.1.6 Дата/DateTime
- 8. Поддержка JSON в PHP 5.1.6
- 9. PHP: как получить даты PHP 5.1.6
- 10. PHP json_encode
- 11. PHP json_encode и javascript функции
- 12. PHP - json_encode и массив размера
- 13. PHP json_encode и JS's JSON.stringify
- 14. Ошибка <? Php echo json_encode ($ variable)?> И {{!! json_encode ($ variable) !!}
- 15. Компиляция PHP 5.1.6 с PDO MySQL
- 16. PHP-версия: 5.1.6: Не удается записать файл
- 17. Будет ли LessPHP работать на PHP 5.1.6?
- 18. PHP сессии не работает в версии 5.1.6
- 19. php сообщение использовать JSON_ENCODE
- 20. PHP: json_decode (json_encode ($ xml));
- 21. PHP json_encode не работает
- 22. php (json_encode возвращает null)!
- 23. PHP выход json_encode формат
- 24. Php/json_encode NULL вопросы
- 25. PHP json_encode автозаполнения
- 26. PHP json_encode - недействительный JSON
- 27. PHP json_encode многомерный массив
- 28. php json_encode mysql result
- 29. php json_encode echoes true
- 30. PHP json_encode обращается методы
Ну, я не знал, что они существуют. Спасибо, что указали на них, все, что у меня есть, это Services_JSON и Zend_Json. –
http://pear.php.net/package/PHP_Compat имеет более удобный код, и вы можете выбирать только любую функцию, которая вам нужна; но в настоящее время он менее совершенен. И на самом деле я думаю, что Zend_Json лучше для разработки, потому что у него есть отчет об ошибках. Где собственный PHP json_decode() не имеет. – mario
+1 никогда не знал об этом –