致命错误:调用未定义的函数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);
}
答案 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月)的说明:
希望这可以节省一些人找出答案的时间!