код utf8 (en|de) удален из php7?
Недавно я перешел на PHP 7 на своем сервере разработки, который работал просто отлично - до сих пор.
Поскольку я обновился до PHP 7.0.3-10+deb.sury.org~trusty+1
(ранее сегодня), функции utf8_decode
и utf8_encode
больше недоступны. Однако они были в предыдущих версиях PHP7. При вызове возникает фатальная ошибка.
Я прочитал, что эти функции предоставляются расширением mbstring
, которое я проверил с помощью var_dump(extension_loaded('mbstring'));
загружено.
Как я могу заставить вышеуказанные функции снова работать?
7 answers
У меня была та же проблема. Просто установите пакет php7.0-xml
. Ubuntu 16.04:
sudo apt-get install php7.0-xml
Изменить: Перезапустите apache2, чтобы загрузить новый пакет.
В Ubuntu во время обновления PHP7 вы получили следующее сообщение:
php7.0 (7.0.3-6) unstable; urgency=medium
* Several extensions have been split into separate extension packages:
- php-dba - Database (dbm-style) Abstraction Layer
- php-mbstring - Multibyte String
- php-soap - SOAP
- php-xml - DOM, SimpleXML, WDDX, XML, XMLReader and XMLWriter
- php-zip - Zip
* The new packages are not installed automatically, so you will need to
install them by hand, if you use the functions in those modules.
* Most modules that have been builtin before are now included in
php7.0-common package and they are enabled by default for your
convenience. You can disable unneede modules via phpdismod tool.
-- Ondřej Surý <[email protected]> Mon, 22 Feb 2016 12:37:09 +0100
Так что это один из тех пакетов, который вызывает проблему. В данном случае это php-xml
.
Обратите внимание на
Новые пакеты не устанавливаются автоматически
Вы можете исправить это с помощью
sudo apt-get install php-xml
sudo apache2ctl graceful
Поскольку ответ, за который проголосовали лучшие, не сработал для меня, я нашел еще один пакет для php7, который (очевидно по его названию) исправил его для меня
sudo apt-get install php7.0-mbstring
Если вы находитесь на CentOS, должна работать следующая команда:
yum install php-xml
В Ubuntu 16.04 LTS с php 5.6 попробуйте:
sudo apt-get install php5.6-xml
sudo service apache2 restart
Функции utf8_decode и utf8_encode доступны в php 7:
Функция.utf8-кодирование - вручную - php
Это связано с тем, что пакет php-xml отсутствует в вашей установке php.
Если на вашем сервере работает Mandrake, введите "urpmi php-xml".
Если ваш сервер работает под управлением EASYPHP в Windows, нажмите на логотип EASYPHP, чтобы активировать модуль php-xml.
В debian или ubuntu попробуйте:
apt-get install php7.0-xmlrpc
Я столкнулся с той же проблемой, и для меня
sudo apt-get install php-patchwork-utf8
И перезапуск сервера apache2 решил проблему (в Ubuntu 16.04 LTS).