mb_convert_encoding,启用mbstring时未定义的函数

时间:2011-11-25 08:29:07

标签: php multibyte-functions

我有一台运行PHP 5.3.8和Apache2 / MySQL的服务器(Ubuntu 11.10 x64)。我正在开发一个项目,我需要做一些特定的字符编码,但我发现没有多字节(mb_ *函数)正常工作。

但是,当我查看phpinfo()时,我发现启用了多字节支持。

我尝试过apt-get install php5-mbstring,php-mbstring,php-multibyte等等,但似乎都没有。

有人能指出我正确的方向吗?提前谢谢!

编辑:通过重新编译PHP修复它(这是我最后的手段,我最初想避免)

./ configure --enable-mbstring

奇怪的是,phpinfo()已经显示它已启用。我不知道为什么它之前没有用:/

3 个答案:

答案 0 :(得分:43)

许多较新的Linux服务器默认没有安装PHP Multibyte模块。一个简单的解决方案通常是安装php-mbstring。

在Red Hat风格(CentOS,Fedora等)上你可以使用yum install php-mbstring。

确保之后重新启动Apache服务器。在RH flavor上使用service httpd restart。

答案 1 :(得分:1)

在您安装的情况下,php5.6与neilsimp1的解决方案类似:

先运行sudo apt-get install php7.0-mbstring,然后再重启sudo service php7.0-fpm对我来说很成功。

sudo apt-get install php5.6-mbstring

然后重新启动apache服务

sudo service apache2 restart.

答案 2 :(得分:0)

有时人们会收到这种错误:致命错误:在第186行的/public_html/this/this.php中调用未定义的函数mb_convert_encoding()。通常,此类错误也会出现在PHP站点和PHP框架中。

看起来你的服务器上没有安装PHP mbstring。

解决方案:

在我的情况下,我只是取消注释; php.ini文件中的extension = php_mbstring.dll并且问题已经解决。

取消注释后不要忘记重启apache服务器; extension = php_mbstring.dll

从此博客获取的代码:http://chandreshrana.blogspot.in/2016/01/call-to-undefined-function.html