可以将文章内容翻译成中文,广告屏蔽插件可能会导致该功能失效(如失效,请关闭广告屏蔽插件后再试):
问题:
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).