Я получаю эту ошибку после попытки настроить LAMP, следуя этому руководству , и я обнаружил, что получаю вышеуказанную ошибку после попытки установить phpmyadmin.
Неустранимая ошибка: вызов неопределенной функции mb_detect_encoding () в C: \ WebServer \ Apache \ htdocs \ phpmyadmin \ libraries \ php-gettext \ gettext.inc в строке 177
- Безопасность PHP: как кодирование может быть использовано неправильно?
- Текст UTF-8 искажается, когда форма отправляется как multipart / form-data в PHP
- Как установить расширение mbstring
- Замена недопустимых символов UTF-8 на вопросительные знаки, mbstring.substitute_character кажется проигнорированным
- Как установить PHP mbstring на CentOS 6.2
Я следил за советом здесь: PHP Неустранимая ошибка при попытке доступа к phpmyadmin mb_detect_encoding и внесены эти изменения.
Когда я запускаю phpinfo()
, я вижу, что поддержка MySQL и mb_string
включена, как показано ниже:
Также установите библиотеку gd.
проверьте эту ссылку http://www.php.net/manual/en/mbstring.installation.php
Это гораздо проще, чем перекомпиляция PHP. Просто yum установите требуемую библиотеку mbstring:
Пример: Как установить PHP mbstring на CentOS 6.2
yum --enablerepo=remi install php-mbstring
О, и не забудьте перезапустить апач потом.
В Windows откройте файл php.ini и внесите следующие изменения:
Удалите комментарий и укажите на каталог ext
; extension_dir = "./" -> extension_dir = "C: / Php / ext"
Удалить комментарий к этим расширениям
Перезапустить службу Apache
httpd -k restart
вы должны использовать только английскую версию phpmyadmin, если вы используете все языки, на которых вы должны включить все языки mbstring в файле php.in ….. просто найдите mbstring в php.in
В Windows / WAMP не существует зависимости php_mbstring.dll от расширения GD2, расширений MySQL и внешних dll / libs:
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
(если это было неправильно, чтобы начать, НЕТ расширений будет загружаться), и т. д., работают больше из-за того, что:) не комментируя строку extension = php_mbstring.dll
или b) перезапуска Apache или компьютера (для того, чтобы изменения вступили в силу).
В Windows чаще всего проблема заключается в том, что php_mbstring.dll:
Заблокировано Windows. Разблокируйте его, щелкнув правой кнопкой мыши его, установите флажок «Свойства».
Или PHP не может загрузить php_mbstring.dll из-за загрузки другой версии (например, из некоторых неправильных DLL-библиотек PHP в C: \ Windows \ system32), некорректной версии, отсутствующих DLL-файлов во время выполнения и т. Д. Проверьте ошибку Apache и PHP файлы журнала сначала для подсказок.
Более подробный ответ здесь: вызов неопределенной функции 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 не может найти php.ini Если вы неправильно установили PHPIniDir. Mine был настроен на: PHPIniDir «c: / php7» Но папка на самом деле просто «php». Ключ просматривал phpinfo (), который показал: Файл конфигурации (php.ini) Путь C: \ windows
Надеюсь, что это поможет некоторым ppl, я получил эту ошибку, когда добавил путь и расширение к docref_root в docref_ext в моем файле php.ini, а затем прокомментировал это, и все было в порядке, но теперь мне не помогло работать.
Для федералов:
yum install php-mbstring
Затем перезапустите apache