我有一台运行PHP 5.3.8和Apache2 / MySQL的服务器(Ubuntu 11.10 x64)。我正在开发一个项目,我需要做一些特定的字符编码,但我发现没有多字节(mb_ *函数)正常工作。
但是,当我查看phpinfo()时,我发现启用了多字节支持。
我尝试过apt-get install php5-mbstring,php-mbstring,php-multibyte等等,但似乎都没有。
有人能指出我正确的方向吗?提前谢谢!
./ configure --enable-mbstring
奇怪的是,phpinfo()已经显示它已启用。我不知道为什么它之前没有用:/
答案 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