PHP 4.4.1 JSON ENCODE - PullRequest
       33

PHP 4.4.1 JSON ENCODE

3 голосов
/ 17 декабря 2011

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

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

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

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

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

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

Ответы [ 3 ]

2 голосов
/ 17 декабря 2011

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

1 голос
/ 17 декабря 2011

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

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

0 голосов
/ 17 декабря 2011

Вы можете использовать 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(), но может работать для ваших целей.

...