Один из таких примеров - это функции для работы с JSON: json_encode() и json_decode(). Подробнее об этих функциях можно прочитать в документации http://www.php.net/manual/ru/ref.json.php
Проблема в том, что JSON extension входит в состав PHP по умолчанию только, начиная с версии 5.2.0
В реальности на сегодняшний день до сих пор на многих хостингах в рунете установлен PHP 5.1.6
Довольно сложно представить современное веб-приложение/сайт без использования ajax, и функция json_encode() становится просто необходимой для формирования JSON.
И если у вас нет json extension вы получите одну из ошибок:
Fatal error: Call to undefined function json_encode() in ... Fatal error: Call to undefined function json_decode() in ...Что же делать?
Нужно реализовать эти функции на PHP!
Можно, конечно, использовать уже готовое, например: http://pear.php.net/package/Services_JSON/
Но! Я встретил уже два сервера, где Service_JSON работал некорректно с русским языком. Тогда не было времени разбираться с причинами и было решено написать свою функцию json_encode() собрав воедино все полезное из комментариев на php.net.
Чтобы не приходилось думать о наличии json в PHP лучше всего делать так:
if (!function_exists('json_encode')) { function json_encode($value) { // Тут реализация функции json_encode на PHP } } if (!function_exists('json_decode')) { function json_encode($json, $assoc = false) { // Тут реализация функции json_encode на PHP } }
После этого вы можете спокойно везде использовать функции json_encode() и json_decode() вне зависимости от версии PHP и наличия json extension.
Все исходники выложены на гитхабе:
https://github.com/alexmuz/php-json
Функции реализованы как по отдельности в процедурном стиле (файлы json_encode.php и json_decode.php - можно подключать только то, что нужно), так и отдельным статическим классом phpJson.Простейший вариант использования:
require_once("phpJson.class.php");
После этого функции json_encode и json_decode станут доступны.