致命错误:调用未定义的函数mb_detect_encoding()

尝试按照本教程设置LAMP后收到此错误,并且在尝试设置phpmyadmin后发现自己收到了上述错误。

致命错误:调用C:\ WebServer \ Apache \ htdocs \ phpmyadmin \ libraries \ php-gettext \ gettext.inc中的未定义函数mb_detect_encoding()

我遵循这里的build议: 尝试访问phpmyadmin mb_detect_encoding PHP致命错误 ,并作出这些更改。

当我运行phpinfo() ,我看到支持MySQL和mb_string被启用,如下所示:

mb_string

MySQL的

mysqli的

还要安装gd库。

检查这个链接http://www.php.net/manual/en/mbstring.installation.php

有比重新编译PHP更简单的方法。 只要yum安装所需的mbstring库:

例如: 如何在CentOS 6.2上安装PHP mbstring

 yum --enablerepo=remi install php-mbstring 

哦,不要忘记重启Apache。

在Windows上打开文件php.ini并进行更改:

删除注释并指向ext目录

; extension_dir =“./” – > extension_dir =“C:/ Php / ext”

删除此扩展的评论

  • 延长=中php_mbstring.dll
  • 延长= php_mysqli.dll

重新启动Apache服务

httpd -k重启

你应该只使用英文版的phpmyadmin,如果你正在使用所有语言,你应该在php.in文件中启用所有语言mbstring …..只要在php.in中searchmbstring

在Windows / WAMP下,GD2扩展,MySQL扩展和外部dll / libs都没有任何php_mbstring.dll依赖关系:

deplister.exe ext\php_mbstring.dll

 php5ts.dll,OK MSVCR110.dll,OK KERNEL32.dll,OK 

deplister.exe ext\php_gd2.dll

 php5ts.dll,OK USER32.dll,OK GDI32.dll,OK KERNEL32.dll,OK MSVCR110.dll,OK 

无论php_mbstring已经需要什么,它都是内置的(静态编译到DLL中)。

调用未定义的函数mb_detect_encoding()

这个错误也是非常具体和确定的…

函数mb_detect_encoding()不会失败,因为php_gd,php_mysql,php_mysqli或其他扩展没有被加载。 它根本没有被发现。

我猜所有报告为有效(对于Windows / WAMP)的答案,即加载其他扩展,改变php.ini extension_dirpath(如果这是错误的开始,NO扩展将加载),更多的工作原因是a)取消注释extension = php_mbstring.dll行,或者b)重新启动Apache或计算机(以使更改生效)。

在Windows上,大部分时间问题是php_mbstring.dll是:

  • 被Windows阻止。 通过右键单击解除封锁,选中属性。

  • 或PHP无法加载php_mbstring.dll由于另一个版本加载(例如,从一些不正确的PHP DLL安装到C:\ Windows \ system32中),一些版本不匹配,缺less运行时DLL等。检查Apache的和PHP的错误首先logging文件的线索。

在这里更深入的回答: 调用未定义函数mb_detect_encoding

当我打开我的php.ini文件,“extension_dir”行如下所示:

 extension_dir = "C:/wamp/bin/php/php5.4.16/ext/" 

我改为:

 extension_dir = "C:\wamp\bin\php\php5.4.16\ext\" 

它的工作。

问题也可能是Apache无法findphp.ini如果您错误地设置PHPIniDir。 我的设置为:PHPIniDir“c:/ php7”但是,该文件夹实际上只是“php”线索是查看phpinfo()其中显示:configuration文件(php.ini)pathC:\窗口

希望这有助于一些脂肪酶,当我在我的php.ini文件中添加了“docref_root”“docref_ext”的path和扩展名时,我得到了这个错误,然后我评论它,这是好的,但无法得到我的帮助,现在工作。

对于Fedora:

yum install php-mbstring

然后重新启动Apache