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

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

Author: paolo, 2016-02-29

7 answers

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

sudo apt-get install php7.0-xml

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

 163
Author: Vladimir Korshunov, 2017-05-11 23:44:17

В 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
Author: Thomas Weller, 2016-07-03 18:15:51

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

sudo apt-get install php7.0-mbstring
 4
Author: Guenther Schmitz, 2017-03-18 14:56:53

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

yum install php-xml
 3
Author: Waqar Alamgir, 2016-10-10 13:10:38

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

sudo apt-get install php5.6-xml
sudo service apache2 restart
 2
Author: Rômulo Z. C. Cunha, 2017-06-21 17:16:34

Функции 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
 1
Author: DevLoots, 2016-04-27 23:17:41

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

sudo apt-get install php-patchwork-utf8

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

 -1
Author: jknappen, 2016-09-28 14:53:53