2011-12-17 4 views
3

У меня есть форма входа в систему jQuery, которая использует функцию $ post для отправки учетных данных скрипту php, который проверяет учетные данные для пользователей в базе данных.PHP 4.4.1 JSON ENCODE

Я использую PHP 5.2 и использую echo json_encode ($ data); в моих php-скриптах для отправки сообщений об ошибках в форму входа без каких-либо проблем. Проблема теперь в том, что у меня есть клиент, у которого установлен PHP 4.4.1, и он не распознает эту команду и выдает следующую ошибку.

Фатальная ошибка: Вызов неопределенной функции: json_encode()

Есть ли эквивалент json_encode() в версии PHP 4.4.1?

Любая помощь будет отличной.

Заранее спасибо.

+1

PHP 4.4.1 был выпущен 31 октября 2005 г. Нет причин, по которым они до сих пор не обновлены. Я бы предложил рассказать им PHP, а не изменять код. –

+0

[Как использовать JSON в PHP 4] (http://www.epigroove.com/posts/97/how_to_use_json_in_php_4_or_php_51x) – Clive

+0

Возможный дубликат [php 5.1.6 json_encode и codeigniter] (http://stackoverflow.com/questions/2900511/php-5-1-6-json-encode-andign codeigniter) – mario

ответ

2

Вы должны использовать эту функцию обертки: http://www.boutell.com/scripts/jsonwrapper.html. Все, что вам нужно сделать с этим решением, это include, что и json_encode.php, и он выполнит проверку function_exists. Если он не существует, он добавляет функцию.

1

Поддержка JSON была в ядре PHP с версии 5.2.0. Поэтому вам нужно использовать PECL::json.

Кроме того, рассмотрим обновление до PHP5, поскольку поддержка PHP4 была прекращена с 2007-12-31, и у нее могут быть проблемы с безопасностью.

0

Вы можете использовать Services_JSON (часть PEAR), который совместим с php4. Если у вас нет доступа к что либо, то я боюсь, что вы просто должны написать свою собственную функцию:

function my_json_encode($arrayus) { 
    $newarr = '{'; 
    foreach ($arrayus as $key => $val) { 
     $newarr .= '"' . $key . '":"' . $val . '",'; 
    } 
    $newarr = substr($newarr, 0, strlen($newarr) - 1); 
    $newarr .= '}'; 
    return $newarr; 
} 

выше является не совместимы с json_encode(), но он может работать для ваших целей ,