Как я могу декодировать json в PHP 5.1?

Функция json_decode не является частью PHP 5.1, поэтому я не могу ее использовать. Есть ли другая функция для этой версии?

Solutions Collecting From Web of "Как я могу декодировать json в PHP 5.1?"

Перед PHP 5.2 вы можете использовать расширение JSON PECL .

Фактически это расширение, которое было интегрировано в PHP 5.2 ( цитирование ) :

Начиная с PHP 5.2.0, расширение JSON встраивается и компилируется в PHP по умолчанию.

Некоторые другие решения заключались бы в использовании некоторых компонентов, разработанных в PHP.

Некоторое время назад (около года назад) я использовал компонент Zend_Json Zend Framework с PHP 5.1.

Даже если Zend Framework требует PHP 5.2, этот компонент может быть извлечен (я думаю, что это зависит только от одного другого компонента – возможно, от Zend_Exception или что-то в этом роде), и год назад его можно было использовать с PHP 5.1.

Официальный сайт JSON также ссылается на несколько PHP-ориентированных или PHP-ориентированных компонентов – вы можете взглянуть на этот список.

Я столкнулся с тем же выпуском PHP 5.1.6, но не смог обновить или установить расширения на сервере моего клиента. Хуже того, сайт JSON.org был недоступен, когда мне было нужно решение, но, к счастью, этот файл в Google Code работал отлично! Я бы предпочел фактически определить json_encode / json_decode, но вызов fromJSON () работал отлично.

http://code.google.com/p/simplejson-php/

Вы видите эту ошибку, потому что у вас есть версия php раньше 5.2.0. Эти функции включены по умолчанию в php 5.2.0 и более поздних версиях.

 PHP Fatal error: Call to undefined function json_encode() 

Вы можете установить расширение PECL , выполнив:

 pecl install json 

Он будет компилироваться, а затем добавить это в файл php.ini : (мой находится в /etc/php5/apache2 )

 extension=json.so 

Затем перезапустите apache.

На моем сервере я не могу установить расширение JSON PECL, потому что это вызывает проблему с zend_json, которая используется в другом приложении. Поэтому я нашел этот сценарий, который работает отлично.

jsonwrapper: json_encode для более ранних версий PHP 5.x

PHP 5.2 добавляет функцию json_encode , которая превращает практически любую структуру данных PHP в действительный код JavaScript. Хэши, массивы, массивы хэшей, что угодно.

К сожалению, многие дистрибутивы Linux по-прежнему поставляются с PHP 5.1.x.

jsonwrapper реализует функцию json_encode если она отсутствует, и оставляет ее в покое, если она уже присутствует. Так что это красиво совместимо с будущим.

Просто добавь:

 require 'jsonwrapper.php'; 

http://www.boutell.com/scripts/jsonwrapper.html

Рамка Zend имеет Zend_Json. По крайней мере, это было несколько лет назад.

http://framework.zend.com/download

Вы можете просто вытащить библиотеку JSON и использовать ее в автономном режиме.

код

 <?php if ( !function_exists('json_decode') ){ function json_decode($json) { // Author: walidator.info 2009 $comment = false; $out = '$x='; for ($i=0; $i<strlen($json); $i++) { if (!$comment) { if ($json[$i] == '{' || $json[$i] == '[') $out .= ' array('; else if ($json[$i] == '}' || $json[$i] == ']') $out .= ')'; else if ($json[$i] == ':') $out .= '=>'; else $out .= $json[$i]; } else $out .= $json[$i]; if ($json[$i] == '"') $comment = !$comment; } eval($out . ';'); return $x; } } ?> 

предупреждение

это непроверено, я нашел его в Интернете

ссылка

http://www.php.net/manual/en/function.json-decode.php#91216

Я столкнулся с проблемами с расширением Services_Json на PHP 5.1.3, поэтому я нашел следующую библиотеку:

https://github.com/alexmuz/php-json

Это под LGPL, и после очень быстрого просмотра, похоже, не имеет значения для ввода.

Вы можете использовать библиотеку jsonwrapper

jsonwrapper реализует функцию json_encode, если она отсутствует, и оставляет ее в покое, если она уже присутствует. Так что это красиво совместимо с будущим.

Скачать здесь: jsonwrapper

Чтобы использовать только что:

 require ("jsonwrapper.php"); $data = array('idx1' => 'foo', 'idx2' => 'bar'); echo json_encode($data); echo json_decode($data);