Ошибка Call to undefined function json_decode() или json_encode()

Это значит, что у Вас не определяется функция json_decode() или json_encode(). А это может быть в случае если у вас php ниже 5.2.0.

Как это пофиксить без обновления:

Качаем либу http://mike.teczno.com/JSON.tar.gz

Вставляем где нужно:

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

// Future-friendly json_decode
if( !function_exists('json_decode') ) {
    function json_decode($data, $bool) {
        if ($bool) {
            $json = new Services_JSON(SERVICES_JSON_LOOSE_TYPE);
        } else {
            $json = new Services_JSON();
        }
        return( $json->decode($data) );
    }
}

Подключаем либу:

include("JSON.php");

Всо -) пс, ТыЦ Дэсять -)

0 comments
  1. ZradeG
    ZradeG
    10.03.2010 at 23:58

    phpinfo показывается, что у хостера PHP Version 5.2.10, но сабжевая ошибка тем не менее появляется
    какие могут быть варианты?

    Reply
  2. utz0r2
    utz0r2
    11.03.2010 at 00:11

    ZradeG, хмхм в версии выше старше 5.2.0 поддержка JSON встроена в ядро. как вариант все таки их подключить вручную как написано в посте…

    Reply
  3. ZradeG
    ZradeG
    11.03.2010 at 09:31

    igor_veselov, а можно ли как-то осуществить это подключение, не обладая правами доступа куда-либо кроме домашней директории?
    дело-то у хостера на сервере происходит

    Reply
  4. utz0r2
    utz0r2
    11.03.2010 at 19:46

    ZradeG, можно

    Reply
  5. Семен
    Семен
    15.02.2011 at 12:38

    igor_veselov,
    А не подскажешь как?
    Пишу маленький плагин, который будет работать и на PHP низших версий
    Заранее благодарен

    Reply
  6. utz0r2
    utz0r2
    16.02.2011 at 10:09

    об этом и пост. подключить класс и юзать как буд-то поддержка есть -)

    Reply
  7. Helen
    Helen
    24.02.2011 at 17:30

    Ошибка JSON DATA ERROR: Fatl error: Call to undefined function: json_decode() in
    plugins\\editors\\jce\\libraries\\classes\\plugin.php on line 860

    В текстовом редакторе JCE, когда открываю библиотеку, чтобы вставить изображение в текст. Подойдет ли описанный вами способ?

    Если да, подскажите, пожалуйста, где нужно вставлять код? И где подключать либу, а главное как? Заранее спасибо за ликбез)))

    Reply
  8. Советчикус
    Советчикус
    24.02.2011 at 19:47

    Скиньте файлик JSON.php в plugins\\editors\\jce\\libraries\\classes\\

    и в plugins\\editors\\jce\\libraries\\classes\\plugin.php в самом верху после <?php вставте код: include("JSON.php");

    Reply
  9. polkan
    polkan
    28.03.2011 at 01:17

    Советчикус, Здравствуйте . Сделал как Вы написали, – ПРОБЛЕМА осталась
    Ошибка JSON DATA ERROR: Fatl error: Call to undefined function: json_decode() in
    plugins\\editors\\jce\\libraries\\classes\\plugin.php on line 860

    Reply
  10. utz0r2
    utz0r2
    28.03.2011 at 12:11

    polkan,
    Из поста

    Вставляем где нужно: ДАЛЬШЕ КОД


    этот код тоже надо вставить после include("JSON.php");

    Reply
  11. polkan
    polkan
    28.03.2011 at 16:14

    Вот незадача, а я так обрадовался что заработает, вставил код и в результате
    JSON DATA ERROR : <br />
    <b>Warning</b>: Missing argument 2 for json_decode(), called in /var/www/vhosts/life-miracle.ru/httpdocs/plugins/editors/jce/libraries/classes/plugin.php on line 879 and defined in <b>/var/www/vhosts/site.ru/httpdocs/plugins/editors/jce/libraries/classes/plugin.php</b> on line <b>12</b><br />
    <br />
    <b>Notice</b>: Undefined variable: bool in <b>/var/www/vhosts/site.ru/httpdocs/plugins/editors/jce/libraries/classes/plugin.php</b> on line <b>13</b><br />
    {"result":[{"folders":[{"id":"index.php?option=com_content&view=section&id=1","url":"&q
    uot;,"name":"\\u041c\\u0415\\u041d\\u042e","class":"folder content"},{"id":"index.php?option=com_content&view=section&id=2","url":"","name":"
    \\u041d\\u041e\\u0412\\u041e\\u0421\\u0422\\u0418","class":"folder content"},{"id":"option=com_content&amp;view=uncategorized","url":"","name":"Uncategor
    ized","class":"folder content nolink"}]}]}

    скажу честно, мне это ничего не говорит , надеюсь на Вашу помощь. СПАСИБО !

    Reply
  12. utz0r2
    utz0r2
    28.03.2011 at 21:36

    Странно потому что если мне не изменяет память то в JCE есть этот класс JSON который и предусмотрен на случай когда пхп не поддерживает его, посему Вам этот хак не нужен.

    1) Очистите кэш, не помогло? тогда п.2
    2) Обновить JCE http://www.joomlacontenteditor.net/downloads/editor/joomla15x

    Reply
  13. polkan
    polkan
    29.03.2011 at 00:29

    igor_veselov,
    Не помогло….
    а может данная ошибка возникать если у хостера
    Версия PHP: 5.1.6 я нашёл материал , что она должна быть >= 5.2 Так ?

    Reply
  14. polkan
    polkan
    31.03.2011 at 00:54

    Решение проблемы найдено !!! Удалил старую версию 1577 и установил 15710 , с одним НО, файлы удалял вручную через FileZilla , т.к. заметил что после стандартной процедуры удаления (Расширения – Установить – Удалить – Компоненты
    там выделить JCE и нажать Удалить) удаляются не все файлы, вернее файлы все а вот коренные папки остаются такие как,
    administrator/components/com_jce
    components/com_jce
    plugins/editors/jce
    И вот только после ручного удаления этих папок
    ВСЁ ВСТАЛО И ЗАРАБОТАЛО !!!

    Reply
  15. Ева
    Ева
    09.07.2011 at 18:46

    Большое спасибо за совет! Версия PHP Version 5.2.10, но пришлось JSON подключить на хостинге, всё заработало.

    Reply
Оставить комментарий

Ваш электронный адрес не будет опубликован. Обязательные поля помечены *

Scroll Up