65

我最近在我的开发服务器上切换到 PHP 7,它工作得很好——直到现在。

由于我更新到PHP 7.0.3-10+deb.sury.org~trusty+1(今天早些时候),utf8_decodeutf8_encode功能不再可用。但是,它们在 PHP7 的早期版本中。调用时,会引发致命错误。

我读到这些功能是由mbstring扩展程序提供的,我检查过它var_dump(extension_loaded('mbstring'));是否已加载。

我怎样才能让上述功能再次工作?

4

7 回答 7

186

我有同样的问题。只需安装php7.0-xml软件包。Ubuntu 16.04:

sudo apt-get install php7.0-xml

编辑:重新启动 apache2以加载新包。

于 2016-04-27T22:32:04.593 回答
12

在 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
于 2016-07-03T18:15:51.243 回答
4

如果你在 CentOS 上,下面的命令应该可以工作:

yum install php-xml
于 2016-10-10T13:10:38.340 回答
4

由于投票最多的答案对我不起作用,我发现了另一个 php7 包(从它的名字可以看出)为我修复了它

sudo apt-get install php7.0-mbstring
于 2017-03-18T14:56:53.150 回答
3

在带有 php 5.6 的 Ubuntu 16.04 LTS 中,尝试:

sudo apt-get install php5.6-xml
sudo service apache2 restart
于 2017-06-21T17:16:34.210 回答
1

utf8_decode 和 utf8_encode 函数可在 php 7 中访问:

function.utf8-encode - 手册 - php

这是因为您的 php 安装中缺少 php-xml 包。

如果您的服务器正在运行 Mandrake,请输入“urpmi php-xml”。

如果您的服务器在 Windows 上运行 EASYPHP,请单击 EASYPHP 徽标以激活 php-xml 模块。

在 debian 或 ubuntu 上尝试:

apt-get install php7.0-xmlrpc
于 2016-03-08T16:20:34.583 回答
-1

我遇到了同样的问题,对我来说,

sudo apt-get install php-patchwork-utf8

并重新启动 apache2 服务器解决了问题(在 Ubuntu 16.04 LTS 上)。

于 2016-09-28T14:53:53.953 回答