Отсутствие json_encode() и json_decode() в PHP4 можно исправить.

Отстутствующие функции json_encode()/json_decode() в PHP4 можно поправить, если воспользоваться методом данного автора.

В кратце, он взял готовый класс “Services_JSON” из сборки PEAR, доработал его напильником (добавил в конец класса две обёртки):

<?php
if(!function_exists('json_encode'))
{
function json_encode($data)
{
$json = new Services_JSON();
return($json->encode($data));
}
}
if(!function_exists('json_decode'))
{
function json_decode($data)
{
$json = new Services_JSON();
return($json->decode($data));
}
}
?>

После данной модификации класса достаточно сделать инклуд класса в своем скрипте и функции json_encode() and json_decode() будут работать в PHP4 как будто у вас PHP 5.2.

Пример:

<?php
include("JSON.php");

$a = json_encode(array('a'=>1, 'b'=>2, 'c'=>'I <3 JSON'));
echo $a;
// Возвращает: {"a":1,"b":2,"c":"I <3 JSON"}

$b = json_decode($a);
echo "$b->a, $b->b, $b->c";
// Возвращает: 1, 2, I <3 JSON
?>

Оригинальный класс можете посмотреть здесь, или скачать отредактированный вариант класса.

2 комментария to “Отсутствие json_encode() и json_decode() в PHP4 можно исправить.”

  1. 2
    Администратор Says:

    Сергей: нужно скачать JSON.php и
    дописать

  2. 1
    Сергей Says:

    Подскажите, можно ли получить более детальную инструкцию «для тупых», т.е. куда и что написать, чтобы функция отрабатывалась там где надо? Не идет авторизация компонентом Loginza на Joomla 1.5, требует как раз наличие json_encode() и json_decode() а версию php не могу переключить на 5ю, ибо в этом случае упадет вообще все. В php вообще ничего не понимаю.

Leave a Reply

Статьи