1

我有以下声明:

$img->setTitle(mb_check_encoding($item['title'], 'UTF-8') ? $item['title'] : utf8_encode($item['title']));

这适用于我的 PHP 5.4.17 本地设置和具有 PHP 5.3.xx 的共享主机

但是当我将此应用程序部署到 Heroku(具有 PHP 5.3.10)时,它会在日志中显示以下错误:

2012-12-26T09:55:28+00:00 app[web.1]: [Wed Dec 26 09:55:27 2012] [error] [client 10.119.79.71] PHP Fatal error: Call to undefined function mb_check_encoding() in /app/www/includes/utils.php on line 44, referer: https://imagemash.herokuapp.com/

根据php.net docs,支持 PHP 5 >= 5.1.3 mb_check_encoding

我究竟做错了什么?或者我的应用程序是否以某种方式使用了旧版本的 PHP?似乎也不需要设置任何 php.ini 值来启用此功能。

4

5 回答 5

5

感谢 AJ。

$ yum install php-mbstring

也许重新加载apache:

$ systemctl reload apache2 
于 2014-03-15T21:19:18.807 回答
4

感谢 DCoder 的指针和http://chrismcleod.me/2011/11/30/use-custom-php-extensions-on-heroku/上的教程,安装了https://github.com上的 mbstring.so 扩展/wuputah/heroku 库

这解决了问题

于 2012-12-26T17:01:46.913 回答
4

将内容添加composer.json到您的项目根目录:

{
    "require": {
        "ext-mbstring": "*"
    }
}

更多信息https://devcenter.heroku.com/articles/php-support

于 2014-10-22T09:23:00.237 回答
1

我在 Red Hat Linux 上遇到了同样的问题。

您需要安装 mbstring 扩展。这是安装的链接:

http://www.knowledgebase-script.com/kb/article/how-to-enable-mbstring-in-php-46.html

这为我解决了这个问题。

谢谢

于 2013-12-04T04:30:13.150 回答
0

如果您是 linux 用户,则只需运行

sudo apt-get install php7.0-mbstring

这里只维护你的php版本,即php7.2-mbstringphp7.3-mbstring

并且不要忘记重新启动服务器,重新启动只需运行运行:

sudo service apache2 restart
于 2019-04-04T07:59:30.713 回答