致命错误:在第 177 行调用 C:\apache\htdocs\phpmyadmin\libraries\php-gettext\gettext.inc 中的未定义函数 mb_detect_enco
Posted
技术标签:
【中文标题】致命错误:在第 177 行调用 C:\\apache\\htdocs\\phpmyadmin\\libraries\\php-gettext\\gettext.inc 中的未定义函数 mb_detect_encoding()【英文标题】:Fatal error: Call to undefined function mb_detect_encoding() in C:\apache\htdocs\phpmyadmin\libraries\php-gettext\gettext.inc on line 177致命错误:在第 177 行调用 C:\apache\htdocs\phpmyadmin\libraries\php-gettext\gettext.inc 中的未定义函数 mb_detect_encoding() 【发布时间】:2014-04-11 20:23:54 【问题描述】:所以我试图让 phpmyadmin 在 Windows 7 上运行,我已经完成并安装了所有正确的程序/文件(apache、mysql、php 等),并且我在右侧有 phpmyadmin 文件夹放在我的目录中,这样当目录索引设置为 index.html 时,当我尝试在浏览器中访问它时,它会显示整个目录。但是,当我将目录切换到 index.php 时,出现此错误:
Fatal error: Call to undefined function mb_detect_encoding() in C:\apache\htdocs\phpmyadmin\libraries\php-gettext\gettext.inc on line 177
我查看了一些支持页面和所有内容(例如 this one),但所有建议似乎都没有帮助我。他们中的大多数人都在谈论编辑 /php 文件夹中的 php.ini 文件,但我什至没有,我有一个 php.ini-development
和 php.ini-production
文件,仅此而已。建议??我还尝试重新安装 php 以查看是否是安装问题...没有用。请帮忙!
【问题讨论】:
使用 phpinfo() 告诉你 php 使用哪个文件作为它的 ini 文件 你安装了什么php版本? 可能重复:***.com/questions/17204437/… 要么确保 php.exe 在你的 windows 路径中,要么从 php 目录运行它 正如 Mark Baker 所说,有些系统使用不同的 php.ini 文件作为命令行 PHP 与 web 服务器调用的文件相比,所以我会将其作为网页而不是从命令行运行。在您的 webroot 中创建一个包含<?php phpinfo(); ?>
的新文件,并通过您的 Web 浏览器加载它可能比在命令行上执行它更好。
【参考方案1】:
将 php.ini-development 重命名为 php.ini 并启用/添加
extension=mysqli.dll
extension=mbstring.dll
修改后重启 apache
【讨论】:
如何将其添加到文件中?有什么特别的语法吗?或者我可以照原样复制和粘贴 复制或替换即可。 文件中的任意位置?我需要吗?在它之前,因为大多数其他行也有它? 如果文件中已经存在前缀;
,删除;
,则表示注释,将被忽略。删除前缀注释 ;
将导致 PHP 将其包含为扩展之一
所以我找到了这个:;extension=php_intl.dll ;extension=php_imap.dll ;extension=php_interbase.dll ;extension=php_ldap.dll extension=php_mbstring.dll ;extension=php_exif.dll ; Must be after mbstring as it depends on it ;extension=php_mysql.dll extension=php_mysqli.dll ;extension=php_oci8.dll ; Use with Oracle 10gR2 Instant Client ;extension=php_oci8_11g.dll ; Use with Oracle 11gR2 Instant Client ;extension=php_openssl.dll
并取出了 ;按照你说的,它仍然不起作用,但那些不是你说的那些【参考方案2】:
此问题是由于某些扩展程序被阻止且扩展程序目录未完全设置所致。
在php.ini 文件中extension_dir=
需要设置为“C:\php\ext”或php ext 文件所在的任何位置。此外,以下扩展名也需要在 php.ini 文件中取消注释
extension=php_gd2.dll
extension=php_mbstring.dll
extension=php_exif.dll
extension=php_mysqli.dll
另一件有帮助的事情是进入 php\ext 文件夹,右键单击上述每个 exts 并选择 unblock
并确保它们未设置为只读。
【讨论】:
你救了我的命...!我建议在 W7 上遇到此问题的每个人都完全按照您在此处所说的...包括到 \ext 的显式路径(带有反斜杠)。您可以通过右键单击并转到属性选项卡来“取消阻止”。更笼统地说,当 SO 贡献者假设海报在 *nix 盒子上出现这样的问题时,这很烦人:在 Windoze 可怕的垃圾上工作通常更麻烦(我的观点),假装全世界现在都转向 Linux 是非常无益的。以上是关于致命错误:在第 177 行调用 C:\apache\htdocs\phpmyadmin\libraries\php-gettext\gettext.inc 中的未定义函数 mb_detect_enco的主要内容,如果未能解决你的问题,请参考以下文章
致命错误:调用未定义的函数 mb_detect_encoding()
致命错误:在第 7 行调用非对象上的成员函数 prepare()。我想不通,为啥会出现此错误?
PHP 致命错误:在第 1 行 Laravel Artisan Tinker 的 eval() 代码中调用未定义函数 table()
致命错误:在第 5 行调用 C:\wamp\www\Test-CI\application\views\layout.php 中未定义的函数 base_url()
致命错误:在第 454 行调用 /etc/apache2/htdocs/sites/all/modules/smart_ip/includes/smart_ip.utility.inc 中未定义的函数