Call to undefined function mb detect encoding

В данной статье пойдет речь об ошибке "Call to undefined function mb_detect_encoding()", которая может появляться при открытии каких-либо страниц вашего сайта или запуска скриптов, написанных на php, а также о том, как жту ошибку можно исправить.

Описание

PHP message: PHP Fatal error: Uncaught Error: Call to undefined function mb_detect_encoding() in .

Данная ошибка появляется из-за того, что не установлен php модуль mbstring. Чтобы её исправить, достаточно просто установить его следующими командами:

Рассмотрим типичные ошибки, возникающие при размещении сайта на хостинге. Если у вас возникла ошибка, которая здесь не представлена, рекомендуем проконсультироваться с разработчиками сайта.

1. Вместо содержимого сайта отображается пустая белая страница

Вы увидите пустую страницу, если в процессе работы скриптов произошла ошибка. По умолчанию на хостинге RU-CENTER отключен вывод ошибок в целях безопасности.

Для диагностики рекомендуем включить отображение ошибок в настройках модуля PHP . В этом случае вместо белого экрана появится сообщение, которое поможет понять, какие ошибки возникли при выполнении скриптов. Типичные ошибки и способы их устранения приведены в следующих разделах данной инструкции.

Чтобы включить отображение ошибок, в настройках модуля PHP включите параметры Обработка ошибок и журнализации error_reporting и Показывать ошибки посетителям сайта display_errors и сохраните изменения.

Если ошибка по-прежнему не будет отображаться — это значит, что вывод ошибок отключен в конфигурационных файлах или скриптах сайта. Для их включения рекомендуем проконсультироваться с разработчиками сайта либо обратиться к документации по используемой вами CMS.

2. Ошибка «Fatal error: Сall to undefined function»

Подобные ошибки возникают, если в конфигурации веб-сервера отсутствуют необходимые для работы сайта расширения PHP. Сообщение об ошибке содержит имя функции, по которой можно определить название расширения:

  • Fatal error: Call to undefined function simplexml_load_file() in . — требуется расширение simplexml,
  • Fatal error: Call to undefined function mb_detect_encoding() in . — требуется расширение mbstring,
  • Fatal error: Call to undefined function ctype_alpha() in . — требуется расширение ctype.

С помощью поиска на сайте http://www.php.net можно определить принадлежность функции к тому или иному расширению PHP, если имя функции однозначно не позволяет определить расширение.

Подключить необходимое расширение вы можете в соответствии с инструкцией Выбор версии и расширения PHP.

3. Ошибка «Fatal error: Allowed memory size of XXX bytes exhausted»

Данная ошибка возникает, если в процессе работы скрипта была израсходована память, выделенная для его работы. Число в байтах сообщает текущее ограничение объема памяти. Это ограничение задается параметром memory_limit. Необходимо изменить параметр Максимальный объем памяти для работы скрипта (memory_limit)».

Если ошибка по-прежнему будет отображаться — это значит, что данный параметр переопределен в конфигурационных файлах или скриптах сайта.

В случае если скрипту недостаточно памяти при максимальном для тарифного плана значении memory_limit, это может означать, что работает он некорректно. В этом случае рекомендуем проконсультироваться с разработчиками скрипта.

4. Ошибка «Headers already sent»

Данная ошибка чаще всего вызвана наличием так называемой BOM-сигнатуры в файлах сайта. В первую очередь проверьте конфигурационные файлы сайта, в которые вы могли вносить изменения.

Для устранения ошибки необходимо скачать эти файлы на свой компьютер, открыть и сохранить их в кодировке UTF-8 без BOM-сигнатуры. Для этого следует использовать любой специализированный текстовый редактор, например, notepad++, поддерживающий сохранение файлов в кодировке UTF-8 без BOM-сигнатуры. Стандартный «Блокнот» Windows в данном случае не подходит.

Также для редактирования файлов вы можете использовать раздел Файловый менеджер панели управления хостингом. В самом начале файла, перед открывающим тэгом PHP вы увидите три нечитаемых символа. Удалите их и сохраните изменения.

В ряде случаев для устранения ошибки необходимо добавить в файл .htaccess сайта директиву:

php_value output_buffering 1

5. Нехватка оперативной памяти

Если вы наблюдаете медленную работу сайта, нестабильную работу части функций, например отправки почты функцией mail(), проверьте статистику использования ресурсов, представленную в разделе Ресурсы панели управления хостингом.

Если график потребления памяти достигает ограничений доступной в рамках тарифного плана оперативной памяти, может наблюдаться нестабильная работа, частичная либо полная неработоспособность сайтов, так как серверу недостаточно ресурсов для обработки поступающих к нему запросов и выполнения скриптов. Использование ресурсов хостинга.

This error is always related to PHP being unable to load the php_mbstring extension, because of some issue with the “php_mbstring.dll” file, or the environment…

Fatal error: Call to undefined function mb_detect_encoding() in WampphpMyAdminlibrariesphp-gettextgettext.inc on line 177

It usually happens when you try to access phpMyAdmin.

Update PATH and Reboot OS

After installing WAMP, or using a new version of PHP, make sure to reboot/restart the system. This will:

  • Propagate the proper PATH changes that includes the location of these files.
  • Clear out any previous DLL versions that might be still loaded by the OS.

Unblock php_mbstring.dll

Go into PHP’s ext folder, right-click on file “php_mbstring.dll”, select Properties, and at the bottom make sure the file not listed as “Blocked”. If it is, click “unblock”.
C:WampDeveloperComponentsPhpext

Test Dependencies

Test for the presence of all the DLLs the php_mbstring.dll extension depends on…

Open the command-line, change to PHP’s directory, and run PHP’s deplister:

* This will only work on some newer versions of PHP that have “deplister”.

If you see a message about MSVCR110.dll (or some similar named DLL) missing / not-found, your system is missing this run-time:
Visual C++ Redistributable for Visual Studio 2012 Update 4

You’ll need the 32 bit version: vcredist_x86.exe

This run-time is included on most current and updated OSs, but some non-updated OSs only have the 2008 version.

Check php.ini

Check php.ini to make sure extension “php_mbstring.dll” is being included/loaded…
C:WampDeveloperConfigPhpphp.ini

Locate, and make sure this extension line is un-commented (no ‘;’ in front) –
extension=php_mbstring.dll

It’s loaded by default under WAMP, unless the PHP version’s php.ini was modified.

Check for older DLLs

It is possible that some PHP DLLs, from other PHP or WAMP installations, exist on your system, which should be removed.

Search your PC for files: php5ts.dll, php5.dll, php_mbstring.dll

The found location will most like be:
C:Windowssystem32

In the location you find any of the above files, you might also have a bunch of other php*.dll files that need to be deleted.

* Don’t delete anything within WAMP’s folder:
C:WampDeveloper

Check Log Files

If nothing else helps, check the Log files again –


[an error occurred while processing the directive]
Карта сайта