ProfiPHPProfiPHP
  1. Главная
  2. Директивы PHP
  3. Директива Mbstring.func_overload

Директива Mbstring.func_overload

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

Mbstring поддерживает механизм перегрузки функций, который позволяет сообщить приложению о том, что используется многобайтовая кодировка, без модификации кода, отвечающего за работу со строками. Например, если включена перегрузка функций, то функция Mb_substr будет вызываться вместо Substr. Этот механизм во многих случаях позволяет портировать приложения, поддерживающие только однобайтовые кодировки, в многобайтное окружение.

Для использования механизма перегрузки функций нужно задать настройке mbstring.func_overload в php.ini положительное значение, которое представляет собой комбинацию битовых масок, определяющих категории функций, которые нужно перегружать. Это будет число 1 для перегрузки функции Mail. 2 для строковых функций, 4 для функций регулярных выражений. Например, если значение настройки равно 7, то почтовые, строковые и функции регулярных выражений будут перегружаться. Список перегружаемых функций: 1 (mail), 2 (strlen, strpos, strrpos, substr, strtolower, strtoupper, stripos, strripos, strstr, stristr, strrchr, substr_count), 4 (ereg, eregi, ereg_replace, eregi_replace, split)
Данный функционал объявлен УСТАРЕВШИМ, начиная с PHP 7.2.0 и его использование крайне не рекомендовано.

Добавить комментарий

Имя:
Текст комментария: