从php7中删除了utf8_(en | de)代码?

时间:2016-02-29 14:11:01

标签: php utf-8 mbstring

我最近在我的开发服务器上切换到了PHP 7,它运行得很好 - 直到现在。

自从我更新到PHP 7.0.3-10+deb.sury.org~trusty+1(今天早些时候)后,utf8_decodeutf8_encode功能将无法再访问。然而,它们是PHP7的早期版本。调用时,会引发致命错误。

我读到这些功能是由mbstring扩展程序提供的,我已加载了var_dump(extension_loaded('mbstring'));

如何让上述功能再次运作?

7 个答案:

答案 0 :(得分:180)

我遇到了同样的问题。只需安装php7.0-xml包。 Ubuntu 16.04:

sudo apt-get install php7.0-xml

修改:重启apache2 以加载新包。

答案 1 :(得分: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

答案 2 :(得分:4)

由于最高投票的答案对我不起作用,我发现了另一个用于php7的软件包(显而易见的名称)为我修复了它

sudo apt-get install php7.0-mbstring

答案 3 :(得分:3)

如果你在CentOS上,以下命令应该有效:

String strDllFileName = m_strUserPath + "\\res\\EQ2008_Dll.dll";
        String strEQ2008_Dll_Set_Path = m_strUserPath + "\\res\\EQ2008_Dll_Set.ini";
        m_DllLibrary = (DllLibrary) Native.loadLibrary(strDllFileName,DllLibrary.class);
        m_DllLibrary.User_ReloadIniFile(strEQ2008_Dll_Set_Path);

答案 4 :(得分:3)

在Ubuntu 16.04 LTS中,使用php 5.6,尝试:

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

答案 5 :(得分:1)

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

function.utf8-encode - manual - php

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

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

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

在debian或ubuntu上尝试:

apt-get install php7.0-xmlrpc

答案 6 :(得分:-1)

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

sudo apt-get install php-patchwork-utf8

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