Подтвердить что ты не робот

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'));.

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

4b9b3361

Ответ 1

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

sudo apt-get install php7.0-xml

Изменить: Перезапустить apache2, чтобы загрузить новый пакет.

Ответ 2

В 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

Ответ 3

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

sudo apt-get install php7.0-mbstring

Ответ 4

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

yum install php-xml

Ответ 5

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

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

Ответ 6

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

function.utf8-encode - manual - php

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

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

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

В debian или ubuntu попробуйте:

apt-get install php7.0-xmlrpc

Ответ 7

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

sudo apt-get install php-patchwork-utf8

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