致命错误:在第556行的/home/abcdef/public_html/folder_name/lib/Pelago/Emogrifier.php中调用未定义的函数mb_convert_encoding()

时间:2016-01-19 11:57:52

标签: magento-1.9

  

致命错误:调用未定义的函数mb_convert_encoding()   /home/abcdef/public_html/folder_name/lib/Pelago/Emogrifier.php在线   556

在magento代码中解决此错误。

这是代码,在返回行显示错误。

    private function getUnifiedHtml() { 
    if (!empty($this->unprocessableHtmlTags)) { $unprocessableHtmlTags = implode('|', $this->unprocessableHtmlTags); $bodyWithoutUnprocessableTags = preg_replace('/<\\/?(' . $unprocessableHtmlTags . ')[^>]*>/i', '', $this->html); } else { $bodyWithoutUnprocessableTags = $this->html; } 

    return mb_convert_encoding($bodyWithoutUnprocessableTags, 'HTML-ENTITIES', self::ENCODING);

 } 

2 个答案:

答案 0 :(得分:2)

看起来您缺少PHP扩展mbstring。 安装它,错误将得到纠正。

的Ubuntu / Debian的

  

sudo apt-get install php-mbstring

如果您使用的是PHP 7.x。

  

sudo apt-get install php7.0-mbstring

对于Centos

  

sudo yum install php-mbstring

答案 1 :(得分:2)

我正在用GoDaddy托管服务器的说明更新此线程,因为我经历了痛苦的一天试图解决此问题。 mbstring 扩展名由Magento使用(我在1.9中需要它),并且未安装该扩展名,结帐过程将失败,并且购物车无法将用户带到'感谢您的订单屏幕” (尽管有时有时会在后端成功创建订单)。按下订单管理面板上的'发送电子邮件'按钮时,这还会造成问题,并产生500错误。

在我的日志文件中,我看到以下错误:

  

PHP致命错误:调用未定义函数mb_convert_encoding()   /home/yoursite/public_html/lib/Pelago/Emogrifier.php,第556行

搜索该错误给出的结果表明,我需要在服务器上启用 mbstring 扩展,但是在GoDaddy托管的虚拟服务器上,我遇到了沮丧之墙,找不到该软件包通过php install搜索,他们的技术支持无法提供帮助。以下是当前WHM面板(2019年1月)的说明:

  1. 以root用户身份登录到服务器WHM。
  2. 搜索EasyApache或转到左侧的“软件”菜单,然后选择“ EasyApache 4”。
  3. 您将看到一个配置文件列表,该列表的顶部是“当前安装的软件包” 。选择“自定义” 按钮。
  4. 选择“ PHP扩展”链接,或继续单击“ Next ”,直到到达页面。
  5. 在搜索框中,键入'string',您将看到' php56-php-mbstring ''< strong> php70-php-mbstring ';移动右侧的灰色滑块以安装每个滑块。
  6. 继续“查看” 标签。在这里,您只需点击'Provision'即可安装扩展程序。您还可以根据需要将这些选项另存为自定义配置文件。
  7. 构建完成后,扩展名应在您所有的域中可用。

希望这可以节省一些人找出答案的时间!