utf8_(en|de)code removed from php7?

≯℡__Kan透↙ 提交于 2019-11-26 14:10:00

问题


I recently switched to PHP 7 on my development server, which has worked just fine - until now.

Since I updated to PHP 7.0.3-10+deb.sury.org~trusty+1 (earlier today), the utf8_decode and utf8_encode functions are no longer accessible. They were, however, in previous versions of PHP7. When called, a fatal error is raised.

I read that these functions are provided by the mbstring extension, which I checked with var_dump(extension_loaded('mbstring')); is loaded.

How can I get the above functions to work again?


回答1:


I had the same problem. Just install php7.0-xml package. Ubuntu 16.04:

sudo apt-get install php7.0-xml

Edit: Restart apache2 to load the new package.




回答2:


On Ubuntu, you got the following message during the upgrade of 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

so it's one of those packages that's causing the problem. In this case, it's php-xml.

Note the

The new packages are not installed automatically

You can fix that by

sudo apt-get install php-xml
sudo apache2ctl graceful



回答3:


As the top voted answer did not work for me i found yet another package for php7 which (obvious by its name) fixed it for me

sudo apt-get install php7.0-mbstring



回答4:


If you are on CentOS, following command should work:

yum install php-xml



回答5:


In Ubuntu 16.04 LTS, with php 5.6, try:

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



回答6:


The utf8_decode and utf8_encode functions are accessible in php 7:

function.utf8-encode - manual - php

This is because the php-xml package is missing in your php installation.

If your server is running Mandrake, enter "urpmi php-xml".

If your server is running EASYPHP on Windows, click on the EASYPHP logo to activate the php-xml module.

On debian or ubuntu try :

apt-get install php7.0-xmlrpc



回答7:


I encountered the same problem and for me,

sudo apt-get install php-patchwork-utf8

and restarting the apache2 server solved the problem (on Ubuntu 16.04 LTS).



来源:https://stackoverflow.com/questions/35701730/utf8-endecode-removed-from-php7

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!