Как подключить mbstring php
Перейти к содержимому

Как подключить mbstring php

  • автор:

Установка

mbstring не входит в список расширений, устанавливаемых по умолчанию. Это значит, что изначально это расширение отключено. Для использования функций этого расширения необходимо явно включить модуль в настройке configure. За дополнительной информацией обращайтесь в раздел Инсталляция.

Следующие настройки относятся к модулю mbstring.

    —enable-mbstring : Включение mbstring функций. Эта настройка необходима для использования mbstring функций. libmbfl необходима для работы mbstring. libmbfl поставляется вместе с mbstring. Если libmbfl уже установлена в системе, то, чтобы использовать именно ее, можно задать настройку —with-libmbfl[=DIR] . В версии PHP 4.3.0 расширение mbstring предоставляет расширенную поддержку кодировок Упрощенного Китайского, Традиционного Китайского, Корейского и Русского языков в дополнение к кодировке Японского языка. Для версий PHP 4.3.3 и ниже, чтобы добавить эту поддержку, необходимо задать одно или несколько значений параметра LANG в настройке —enable-mbstring=LANG ; следующим образом: —enable-mbstring=cn для поддержки Упрощенного Китайского, —enable-mbstring=tw для поддержки Традиционного Китайского, —enable-mbstring=kr для поддержки Корейского, —enable-mbstring=ru для поддержки Русского, и —enable-mbstring=ja для поддержки Японского (по умолчанию). Для включения всех поддерживаемых кодировок используйте настройку —enable-mbstring=all .

Замечание: C версии PHP 4.3.4, все поддерживаемые библиотекой libmbfl кодировки включаются настройкой —enable-mbstring .

Замечание: В версии PHP 4.3.0 настройка —enable-mbstr-enc-trans была исключена и заменена на установку времени выполнения mbstring.encoding_translation. Преобразование кодировок входных символов HTTP включено, когда этой установке задано значение On (значение по умолчанию Off).

Как подключить mbstring php

Поведение этих функций зависит от установок в 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 используются настройки национального языка. Обратите внимание, что эта опция автоматически определяет mbstring.internal_encoding , и mbstring.internal_encoding должен быть помещён после mbstring.language в php.ini

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

Внимание

Эта возможность устарела и будет удалена в будущем.

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

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

Внимание

Эта возможность устарела и будет удалена в будущем.

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

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

Внимание

Эта возможность устарела и будет удалена в будущем.

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

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

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

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

Внимание

Эта функциональность объявлена УСТАРЕВШЕЙ начиная с PHP 7.2.0 и была УДАЛЕНА в версии PHP 8.0.0. Использовать эту функцию крайне не рекомендуется.

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

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

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

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

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

Ограничивает глубину стека регулярных выражений 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

User Contributed Notes 3 notes

5 years ago

String literals in the PHP script are encoded with the same encoding that the PHP file was saved with. This is not affected by default_charset or other .ini settings.

Scenario: The default_charset is KOI8-R, and there is a text file «input.txt» containing the string «Это текст для поиска.» in KOI8-R encoding.

A PHP script is written:

$data = file_get_contents ( ‘input.txt’ );

echo mb_strpos ( $data , $string );

?>
But unfortunately it was saved as UTF-8.

It doesn’t work; mb_strpos() returns false because it can’t find the UTF-8-encoded «текст» inside the KOI8-R-encoded «Это текст для поиска.».

Adjusting the default_charset had no effect. Not even fiddling with mb_internal_encoding could fix it, simply because the strings involved had *different* encodings and without actually changing one of them they just weren’t going to match.

Either re-save the source file as KOI8-R to match the data file, or re-save the data file as UTF-8 to match the source code. Only then will the script properly echo ‘4’.

5 years ago

The documentation is vague, on WHAT precisely the valid «NLS» language strings are that are valid for «mbstring.language».

According to http://php.net/manual/en/function.mb-language.php the values are «Japanese», «ja», «English», «en», or «uni» for UTF-8.
On the other hand, the sample on this current page omits «uni» but introduces «Neutral» as an undocumented option — which is also the default value:

var_dump ( mb_language () ); // «neutral» (default if not set)
var_dump ( mb_language ( ‘uni’ ) ); // TRUE, valid language string
var_dump ( mb_language () ); // «uni»
var_dump ( mb_language ( ‘neutral’ ) ); // TRUE, valid language string
var_dump ( mb_language () ); // «neutral»
?>

10 years ago

Note that you should better at least set «mbstring.internal_encoding».

Just check as below:

echo mb_internal_encoding () . ‘
‘ ;
echo mb_regex_encoding ();

?>

You might be surprised at unexpected values.

mbstring.language Japanese
;mbstring.internal_encoding (commented out showing «no value» in phpinfo() )

These two lines in «php.ini» are the same values as

in Win / Linux servers.

«mbstring.internal_encoding» defines the default encoding for «mb_» Functions such as «mb_strlen()».

It also defines the same for «mb_ereg_» Functions such as «mb_ereg()» when you don’t set «mb_regex_encoding».

  • Установка и настройка
    • Требования
    • Установка
    • Настройка во время выполнения
    • Типы ресурсов
    • Copyright © 2001-2024 The PHP Group
    • My PHP.net
    • Contact
    • Other PHP.net sites
    • Privacy policy

    Как подключить mbstring php

    Ваш PHP должен быть скомпилирован с опцией —enable-exif . Для включения поддержки многобайтовых кодировок в тегах EXIF необходимо включить модуль mbstring. Включить его можно, скомпилировав PHP с опцией —enable-mbstring .

    Только для Windows: модуль mbstring всегда должен быть включён. Обратите внимание, что модуль mbstring должен загружаться раньше, чем EXIF (очерёдность в php.ini ).

    User Contributed Notes

    There are no user contributed notes for this page.

    • Установка и настройка
      • Требования
      • Установка
      • Настройка во время выполнения
      • Типы ресурсов
      • Copyright © 2001-2024 The PHP Group
      • My PHP.net
      • Contact
      • Other PHP.net sites
      • Privacy policy

      Как подключить mbstring php

      mbstring не входит в список модулей, устанавливаемых по умолчанию. Это значит, что изначально этот модуль отключён. Для использования функций этого модуля необходимо явно включить его с опцией configure . За дополнительной информацией обращайтесь в раздел Инсталляция.

      Следующие настройки относятся к модулю mbstring .

      • —enable-mbstring: Включение функций mbstring . Эта настройка необходима для использования функций mbstring . libmbfl необходима для работы mbstring . libmbfl поставляется вместе с mbstring . До PHP 7.3.0, если libmbfl уже установлена в системе, то можно использовать —with-libmbfl[=DIR] для использования установленной библиотеки.
      • —disable-mbregex: Отключение функций регулярных выражений, поддерживающих многобайтовые кодировки. Oniguruma необходима для функций, работающих с регулярными выражениями с поддержкой многобайтовых кодировок. Начиная с PHP 7.4.0, для обнаружения библиотеки libonig используется pkg-config. До PHP 7.4.0 Oniguruma поставлялась вместе с mbstring , но можно было выполнить сборку с уже установленным libonig, передав —with-onig[=DIR]. Возможно запретить многобайтовые регулярные выражения с возвратом с помощью опции —disable-mbregex-backtrack.

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

Ваш адрес email не будет опубликован. Обязательные поля помечены *