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

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

8
задан newbie 3 March 2010 в 12:03
поделиться

4 ответа

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

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

Начиная с PHP 5.2.0, расширение JSON имеет вид {{1 }} объединены и скомпилированы в PHP по умолчанию .


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

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

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


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

8
ответ дан 5 December 2019 в 08:51
поделиться

В платформе Zend есть Zend_Json. По крайней мере, так было пару лет назад.

http://framework.zend.com/download

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

0
ответ дан 5 December 2019 в 08:51
поделиться

код

<?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

0
ответ дан 5 December 2019 в 08:51
поделиться

Вы видите эту ошибку, потому что у вас версия 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.

3
ответ дан 5 December 2019 в 08:51
поделиться
Другие вопросы по тегам:

Похожие вопросы: