致命错误:调用未定义函数utf8_substr() Opencart


Fatal error: Call to undefined function utf8_substr() Opencart

我的网站工作良好,从过去的2 3个月,但现在它显示500服务器错误消息。然后我看到error.log文件上面写着

PHP致命错误:调用未定义函数utf8_substr()在public_html/catalog/model/tool/image.php第11行

给定位置的代码为:

$new_image = 'cache/' . utf8_substr($filename, 0, utf8_strrpos($filename, '.')) . '-' . $width . 'x' . $height . '.' . $extension;

然后我认为可能是因为缓存,然后我清除了缓存,仍然得到相同的错误信息。我在谷歌上寻找解决方案,我发现了一些解决方案,如Clearing cache,检查startup.phputf8.php是否缺失,但文件在正确的地方。

请告诉我这个问题的解决方法。

我正在运行openart 2.0.3.1版本

Thanks in advance

我找到了解决方案。我的网站缺少mbstring扩展。yum install mbstring不能在我的服务器上工作,因为它被命名为ea-php56-php-mbstring-5.6.26-1.1.2.cpanel.x86_64。我安装了这个,我的网站又工作了。如果你也有同样的问题。然后请ssh到您的网站,检查mbstring是否安装,您可以通过运行php -m | grep mbstring检查,它不会返回任何东西,如果mbstring没有安装,但如果安装了扩展,那么它将返回mbstring。如果缺少mbstring,那么您可以运行yum search mbstring命令,它将使用mbstring字搜索扩展。然后执行yum install NAME_OF_FILE命令。将NAME_OF_FILE替换为mbstring文件的名称。然后按照说明,一旦安装完成。执行php -m | grep mbstring命令可以交叉检查是否安装了mbstring。这对我很有帮助。很抱歉我没有解释清楚。谢谢你tmquang6805

请检查您是否安装了mbstringiconv PHP扩展。因为这个函数只会在你安装其中一个的时候加载。这是您案例的代码https://github.com/opencart/opencart/blob/master/upload/system/helper/utf8.php

安装php-mbstring,唯一的解决方案