致命错误:调用未定义的函数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
被启用,如下所示:
还要安装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_dir
path(如果这是错误的开始,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