код 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 59

7 ответов:

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

sudo apt-get install php7.0-xml

Edit:перезапустить 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ý <ondrej@debian.org>  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:

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

sudo apt-get install php-patchwork-utf8

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