从 php7 中删除了 utf8_(en|de) 代码?
utf8_(en|de)code removed from php7?
我最近在我的开发服务器上切换到 PHP 7,它工作得很好 - 直到现在。
自从我更新到 PHP 7.0.3-10+deb.sury.org~trusty+1
(今天早些时候),utf8_decode
和 utf8_encode
功能不再可用。但是,它们在 PHP7 的早期版本中。调用时,会引发致命错误。
我读到这些功能是由 mbstring
扩展提供的,我检查过 var_dump(extension_loaded('mbstring'));
已加载。
如何才能使上述功能再次发挥作用?
utf8_decode 和 utf8_encode 函数可在 php 7:
中访问
function.utf8-encode - manual - php
这是因为 php-xml 软件包在您的 php 安装中丢失。
如果您的服务器是 运行 Mandrake,请输入 "urpmi php-xml"。
如果您的服务器是 运行 EASYPHP Windows,请单击 EASYPHP 徽标以激活 php-xml 模块。
在 debian 或 ubuntu 上尝试:
apt-get install php7.0-xmlrpc
我遇到了同样的问题。只需安装 php7.0-xml
包。 Ubuntu 16.04:
sudo apt-get install php7.0-xml
编辑:重新启动 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
。
注意
The new packages are not installed automatically
您可以通过
解决这个问题
sudo apt-get install php-xml
sudo apache2ctl graceful
我遇到了同样的问题,对我来说,
sudo apt-get install php-patchwork-utf8
并重新启动 apache2 服务器解决了问题(在 Ubuntu 16.04 LTS 上)。
如果您使用的是 CentOS,则以下命令应该有效:
yum install php-xml
由于投票最多的答案对我不起作用,我找到了 php7 的另一个软件包,它(根据其名称显而易见)为我修复了它
sudo apt-get install php7.0-mbstring
在 Ubuntu 16.04 LTS 和 php 5.6 中,尝试:
sudo apt-get install php5.6-xml
sudo service apache2 restart
我最近在我的开发服务器上切换到 PHP 7,它工作得很好 - 直到现在。
自从我更新到 PHP 7.0.3-10+deb.sury.org~trusty+1
(今天早些时候),utf8_decode
和 utf8_encode
功能不再可用。但是,它们在 PHP7 的早期版本中。调用时,会引发致命错误。
我读到这些功能是由 mbstring
扩展提供的,我检查过 var_dump(extension_loaded('mbstring'));
已加载。
如何才能使上述功能再次发挥作用?
utf8_decode 和 utf8_encode 函数可在 php 7:
中访问function.utf8-encode - manual - php
这是因为 php-xml 软件包在您的 php 安装中丢失。
如果您的服务器是 运行 Mandrake,请输入 "urpmi php-xml"。
如果您的服务器是 运行 EASYPHP Windows,请单击 EASYPHP 徽标以激活 php-xml 模块。
在 debian 或 ubuntu 上尝试:
apt-get install php7.0-xmlrpc
我遇到了同样的问题。只需安装 php7.0-xml
包。 Ubuntu 16.04:
sudo apt-get install php7.0-xml
编辑:重新启动 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
。
注意
The new packages are not installed automatically
您可以通过
解决这个问题sudo apt-get install php-xml
sudo apache2ctl graceful
我遇到了同样的问题,对我来说,
sudo apt-get install php-patchwork-utf8
并重新启动 apache2 服务器解决了问题(在 Ubuntu 16.04 LTS 上)。
如果您使用的是 CentOS,则以下命令应该有效:
yum install php-xml
由于投票最多的答案对我不起作用,我找到了 php7 的另一个软件包,它(根据其名称显而易见)为我修复了它
sudo apt-get install php7.0-mbstring
在 Ubuntu 16.04 LTS 和 php 5.6 中,尝试:
sudo apt-get install php5.6-xml
sudo service apache2 restart