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')); загружен.

Как я могу заставить вышеуказанные функции работать снова?

62

Решение

У меня такая же проблема. Просто установите php7.0-xml пакет. Ubuntu 16.04:

sudo apt-get install php7.0-xml

Редактировать: Перезапустите apache2 загрузить новый пакет.

172

Другие решения

В 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
12

Поскольку ответ с наибольшим количеством голосов не работал для меня, я нашел еще один пакет для php7, который (очевидно, по названию) исправил его для меня

sudo apt-get install php7.0-mbstring
4

Если вы используете CentOS, должна работать следующая команда:

yum install php-xml
3

В Ubuntu 16.04 LTS с php 5.6 попробуйте:

sudo apt-get install php5.6-xml
sudo service apache2 restart
3

Функции utf8_decode и utf8_encode доступны в php 7:

function.utf8-encode — инструкция — php

Это потому, что пакет php-xml отсутствует в вашей установке php.

Если на вашем сервере запущена Mandrake, введите «urpmi php-xml».

Если ваш сервер работает под управлением EASYPHP в Windows, нажмите на логотип EASYPHP, чтобы активировать модуль php-xml.

На Debian или Ubuntu попробуйте:

apt-get install php7.0-xmlrpc
1

Я столкнулся с той же проблемой, и для меня,

sudo apt-get install php-patchwork-utf8

и перезапуск сервера apache2 решил проблему (на Ubuntu 16.04 LTS).

-1
По вопросам рекламы [email protected]