Функции PHP недоступны - json_decode - PullRequest
1 голос
/ 09 июля 2010

Исходя из моего php_info (), моя версия PHP - версия PHP 5.2.9

Однако, по какой-то причине, когда я пытаюсь использовать json_decode, я получаю сообщение об ошибке, что функция не найдена (и она должнабыть для PHP 5.2 и выше).

PHP.net предлагает проверить команду настройки:

'. / Configure' '--prefix = / usr / local / php5' '--with-config-file-scan-dir = / usr / local / php5 / etc '' --with-apxs2 = / usr / sbin / apxs '' --disable-all '' --enable-libxml '' --with-libxml-dir = / usr/ local '' --enable-отражение '' --disable-cli '' --disable-cgi '' --enable-zend-multibyte '' --with-regex = php '' --enable-filter ''--with-pcre-regex = yes '

Я не понимаю половину этого, но может быть проблема --disable-all?Есть ли способ использовать json_decode без перестройки PHP?

Я мог бы найти функцию json, но я бы предпочел использовать встроенные функции PHP, которые должны быть мне доступны, и боюсь, что это может бытьдругие функции, которые я также хочу использовать позже.

Существуют ли библиотеки для JSON, независимо от того, скомпилированы они или нет, и могу ли я включить их напрямую, когда я хочу их использовать?

Ответы [ 5 ]

2 голосов
/ 09 июля 2010

http://upgradephp.berlios.de/ содержит, помимо прочего, повторную реализацию json_decode ().

1 голос
/ 09 июля 2010

json - это расширение (написанное на C), которое включено в конфигурацию сборки по умолчанию.Поскольку вы использовали опцию отключить все, она не включена в вашу сборку.

Вы можете добавить расширение, не перестраивая PHP.Просто получите или создайте расширение (json.dll или json.so) и добавьте эту строку в файл php.ini,

extension=json.so
1 голос
/ 09 июля 2010

- отключить-все действительно проблема.

Если вы не можете перекомпилировать или установить пакет "json" из упаковщика linux, я настоятельно рекомендую использовать Zend_Json. Он будет автоматически использовать код json_ [en | de], если он доступен.

http://framework.zend.com/apidoc/1.10/Zend_Json/Zend_Json.html

$json = Zend_Json::encode($data);
$data = Zend_Json::decode($data);
0 голосов
/ 09 июля 2010
"However, for some reason when i try and use php_decode"

вы пытаетесь php_decode() или json_decode()? нет такой вещи как php_decode()

0 голосов
/ 09 июля 2010

Неа. Функции JSON, скорее всего, написаны на C и либо скомпилированы в ваш двоичный файл PHP, либо вообще недоступны.

Либо вам нужно перекомпилировать, либо использовать любую из 6 альтернатив на json.org .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...