Включить кодирование json в PHP

может кто-нибудь посоветовать, как включить функцию json_encode в PHP?

У меня есть чистая установка Centos 5.6 и только что установлен Virtualmin.

кто-нибудь знает следующие шаги?

4 ответов


как в http://www.php.net/manual/en/json.requirements.php

требования

для использования этих функций не требуется установка; они являются частью ядра PHP.

просто PHP >= 5.2.0

редактировать: видел в комментарий кроме этого

на RHEL5 / CentOS5 добавьте репозиторий EPEL (http://fedoraproject.org/wiki/EPEL).

после этого, установка так же просто, как:

sudo yum install php-pecl-json

не знаю, относится ли это к вашему вопросу, у меня нет сервера Centos...

Для Ubuntu:

sudo aptitude install php5-json

в моем случае я столкнулся с этим вопросом, потому что я перекомпилировал PHP will ./configure --disable-all а затем индивидуально добавляя в расширения, которые мне нужны. Для случая json_encode () это, конечно, включено в расширение JSON. Чтобы включить это расширение, добавьте опцию --enable-json к вашей команде configure, т. е.:

./configure --disable-all --enable-json ...

(The "...- это относится к тому, что у вас могут быть другие расширения, которые вы захотите включить.)

В общем, любое расширение PHP можно включить либо включить опцию --with-extname или --enable-extname (где "extname" - это имя расширения). Вы можете выяснить, какой из этих двух синтаксисов использовать, выдав ./configure --help | grep extname. Конечно, вам нужно иметь доступную библиотеку и, возможно, придется настроить путь, где она находится (в зависимости от расширения и находится ли он в пути "по умолчанию").


на CenotOS и других системах * nix, даже если у вас есть PHP, скомпилированный с --disable-json не все может быть потеряно. Первое, что, конечно, это проверить вывод из вашего phpinfo (); и поиск вхождений json. Если вы видите поддержка json включена тогда, конечно, у вас есть расширение json, но если нет, посмотрите, есть ли у вас / etc / php.d / json.ini перечислены в дополнительные .ini-файлы парсятся. Если вы этот файл может выглядеть так:

; включить модуль расширения json
; extension=json.так что

раскомментируйте вторую строку и перезапустите Apache. Если Apache запущен без ошибок, проверьте свой phpinfo () еще раз и посмотрите, включено ли это расширение json. Если это так, вы все настроены, если нет, вам может потребоваться найти каталог, в котором находятся ваши расширения php, и если вы видите json.так что там отредактируйте последнюю строку, чтобы включить полный путь к этому файлу и снова перезапустите Apache. Если у вас нетjson.так что файл с другими файлами расширений php, вам, вероятно, придется перекомпилировать это расширение (вам не нужно перекомпилировать весь PHP, но вы, конечно, могли бы, на этот раз с --enable-json), а затем повторите попытку.

также, если у вас нет дополнительных .ini файлы проанализированы, вы можете попробовать добавить это расширение в свой основной php.ini, который обычно является /etc / php.ini.


на php 7 Я сделал это, чтобы установить json (после нескольких часов борьбы):

yum install php70u-json
service nginx restart
service php-fpm restart