## Настройка во время выполнения

Поведение функций зависит от установок в файле php.ini.

Опции конфигурации mbstring
Имя | По умолчанию | Место изменения | Список изменений
--- | --- | --- | ---
mbstring.language | "neutral" | `INI_ALL` |
mbstring.detect_order | NULL | `INI_ALL` |
mbstring.http_input | "pass" | `INI_ALL` | Устарела
mbstring.http_output | "pass" | `INI_ALL` | Устарела
mbstring.internal_encoding | NULL | `INI_ALL` | Устарела
mbstring.substitute_character | NULL | `INI_ALL` |
mbstring.func_overload | "0" | `INI_SYSTEM` | Объявлено устаревшим в PHP 7.2.0; удалено с PHP 8.0.0.
mbstring.encoding_translation | "0" | `INI_PERDIR` |
mbstring.http_output_conv_mimetypes | "^(text/|application/xhtml\+xml)" | `INI_ALL` |
mbstring.strict_detection | "0" | `INI_ALL` |
mbstring.regex_retry_limit | "1000000" | `INI_ALL` | Доступно, начиная с PHP 7.4.0.
mbstring.regex_stack_limit | "100000" | `INI_ALL` | Доступно, начиная с PHP 7.3.5.

Дополнительную информацию и определения режимов INI_* даёт раздел «Места установки параметров конфигурации».

Краткое разъяснение конфигурационных директив.

`mbstring.language` string

  По умолчанию в mbstring используются настройки национального языка. Обратите внимание, что эта опция автоматически определяет `mbstring.internal_encoding`, и `mbstring.internal_encoding` должен быть помещён после `mbstring.language` в php.ini

`mbstring.encoding_translation` bool

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

`mbstring.internal_encoding` string
  Внимание

  Функция устарела и ее удалят в будущем.

  Определяет внутреннюю кодировку символов по умолчанию.

  Пользователи должны оставить эту опцию пустой и задать вместо неё `default_charset`.

`mbstring.http_input` string
  Внимание

  Функция устарела и ее удалят в будущем.

  Определяет кодировку символов по умолчанию для HTTP-ввода.

  Пользователи должны оставить эту опцию пустой и задать вместо неё `default_charset`.

`mbstring.http_output` string
  Внимание

  Функция устарела и ее удалят в будущем.

  Определяет кодировку символов по умолчанию для HTTP-вывода (конвертация из внутренней кодировки в кодировку HTTP вывода произойдёт перед выводом).

  Пользователи должны оставить эту опцию пустой и задать вместо неё `default_charset`.

`mbstring.detect_order` string

  Определяет порядок определения кодировки символов по умолчанию. Смотрите также mb_detect_order().

`mbstring.substitute_character` string

  Определяет символ для замены недопустимых символов кодировки. Список поддерживаемых значений смотрите в описании функции mb_substitute_character().

`mbstring.func_overload` string
  Внимание

  Начиная с PHP 7.2.0 функциональность УСТАРЕЛА, а в PHP 8.0.0 функциональность УДАЛИЛИ. Полагаться на функциональность настоятельно не рекомендуют.

  Перегружает множество однобайтовых функций аналогами из mbstring. Смотрите раздел Перегрузка функций для получения дополнительной информации.

  Эта опция может быть изменена только в файле php.ini.

`mbstring.http_output_conv_mimetypes` string

`mbstring.strict_detection` bool

  Включает строгое определение кодировки. Смотрите описание и примеры в mb_detect_encoding().

`mbstring.regex_retry_limit` int

  Ограничивает количество обратных ходов, которые могут быть выполнены во время одного совпадения mbregex.

  Эта настройка действует только при связывании с oniguruma >= 6.8.0.

`mbstring.regex_stack_limit` int

  Ограничивает глубину стека регулярных выражений mbstring.

Согласно » спецификации HTML 4.01, веб-браузерам разрешено перекодировать данные из формы, которые они получают в кодировке символов, отличной от используемой на странице. Смотрите функцию mb_http_input() для того, чтобы определить кодировку символов, используемую браузерами.

Хотя популярные браузеры способны достаточно точно определить кодировку символов данного HTML-документа, было бы лучше установить параметр `charset` в HTTP-заголовке `Content-Type` соответствующим значением с помощью header() или указать требуемое значение в параметре default_charset в ini-настройках.

Пример #1 Примеры настроек php.ini

    ; Установить язык по умолчанию
    mbstring.language        = Neutral; Установить Neutral(UTF-8) языком по умолчанию (по умолчанию)
    mbstring.language        = English; Установить английский языком по умолчанию
    mbstring.language        = Japanese; Установить японский языком по умолчанию

    ;; Установить внутреннюю кодировку по умолчанию
    ;; Примечание: Убедитесь, что используете кодировку символов, которая работает с PHP
    mbstring.internal_encoding    = UTF-8  ; Установить внутреннюю кодировку в UTF-8

    ;; Включено преобразование кодировки HTTP-ввода.
    mbstring.encoding_translation = On

    ;; Установить кодировку символов по умолчанию для HTTP-ввода
    ;; Примечание: Скрипт не может изменить установку http_input.
    mbstring.http_input           = pass    ; Нет преобразования.
    mbstring.http_input           = auto    ; Установить HTTP-ввод в auto
                                    ; "auto" расширяется в соответствии с mbstring.language
    mbstring.http_input           = SJIS    ; Установить HTTP-ввод в SJIS
    mbstring.http_input           = UTF-8,SJIS,EUC-JP ; Указать порядок

    ;; Установить кодировку символов по умолчанию для HTTP-вывода
    mbstring.http_output          = pass    ; Нет преобразования.
    mbstring.http_output          = UTF-8   ; Установить кодировку HTTP-вывода в UTF-8

    ;; Установить порядок определения кодировки символов по умолчанию
    mbstring.detect_order         = auto    ; Установить порядок определения в auto
    mbstring.detect_order         = ASCII,JIS,UTF-8,SJIS,EUC-JP ; Указать порядок

    ;; Установить символ замены по умолчанию
    mbstring.substitute_character = 12307   ; Указать значение Unicode
    mbstring.substitute_character = none    ; Не печатать символ
    mbstring.substitute_character = long    ; Примеры кодовых значений символов: U+3000,JIS+7E7E

Пример #2 Настройки php.ini для пользователей `EUC-JP`

    ;; Отключить буферизацию вывода
    output_buffering      = Off

    ;; Установить кодировку в http-заголовке
    default_charset       = EUC-JP

    ;; Установить японский языком по умолчанию
    mbstring.language = Japanese

    ;; Включено преобразование кодировки HTTP-ввода.
    mbstring.encoding_translation = On

    ;; Установить перекодировку HTTP-ввода в auto
    mbstring.http_input   = auto

    ;; Конвертировать HTTP-вывод в EUC-JP
    mbstring.http_output  = EUC-JP

    ;; Установить внутреннюю кодировку в EUC-JP
    mbstring.internal_encoding = EUC-JP

    ;; Не печатать недопустимые символы
    mbstring.substitute_character = none

Пример #3 Настройки php.ini для пользователей `SJIS`

    ;; Включить буферизацию вывода
    output_buffering     = On

    ;; Установить mb_output_handler для включения перекодировки вывода
    output_handler       = mb_output_handler

    ;; Установить кодировку в http-заголовке
    default_charset      = Shift_JIS

    ;; Установить японский языком по умолчанию
    mbstring.language = Japanese

    ;; Установить перекодировку HTTP-ввода в auto
    mbstring.http_input  = auto

    ;; Конвертировать в SJIS
    mbstring.http_output = SJIS

    ;; Установить внутреннюю кодировку в EUC-JP
    mbstring.internal_encoding = EUC-JP

    ;; Не печатать недопустимые символы
    mbstring.substitute_character = none

`↑` and `↓` to navigate • `Enter` to select • `Esc` to close • `/` to open