Php mbstring как настроить

Quick ways to enable mbstring in php.ini

Usually, mbstring extension in web servers helps to manage the non-ASCII codes easily.

At Bobcares, we often get requests to enable mbstring extension, as a part of our Server Management Services.

Today, let’s see how our Support Engineers enable the mbstring extension for our customers.

How does mbstring error look?

Let’s begin by checking more details on mbstring and how the error appears on any website.

By default, mbstring makes multibyte encoding possible in PHP. This PHP extension helps in managing non-ASCII string. A typical example would be a website that handles musical quotes. It helps to manipulate strings encoded in a multi-byte encoding.

In many situations, customers get an error message related to missing PHP extensions. This particularly happens after enabling PHP function for wrong version of PHP. Or when the website uses an alternate PHP version.

For instance, while trying to enter phpMyAdmin and the mbstring module is missing on the server, it results in an error:

phpMyAdmin error due to improper enabling of mbstring in php.ini

How we enable mbstring in php.ini?

Usually, adding the extension in the php.ini file enables mbstring. But, this procedure varies with different platforms.

With the expertise in Server Management, our Dedicated Engineers enable the mbsting module for our customers.

Let’s see the multiple ways that we use to enable mbstring on various platforms.

1. mbstring in Linux

Linux servers provide an easy way to enable PHP extensions.

Firstly, our Support Team check for the mbstring module using the command,

If there is no such module, then we install it using the command,

yum install php7x-mbstring

Afterward, we make sure the presence of necessary extension in the PHP include file. A sample entry looks like:

[root@xxx ~]# cat /etc/php.d/mbstring.ini ; Enable mbstring extension module extension=mbstring.so

Later we ensure to restart the webserver to save the changes. This enables PHP mbstring on the server. Finally, we verify the same by adding a web page that dispaly the results of the phpinfo() function.

Читайте также:  Full screen img html

2. In Windows

In the Windows server, the addition of the .dll files holds multiple codes and procedures. So, the Support Team first makes sure that the .dll file is present in the server.

Usually, php.ini is the file that contains all the PHP parameters. Thus, we access the php.ini file.

We check for the entry regarding the mbstring extension in the configuration file. We uncomment the line,

Later, we save the changes and restart the webserver.

3. Enabling mbstring in cPanel

In servers having a cPanel, it is easier to enable mbstring. So, for cPanel customers we enable mbstring as follows:

  1. Firstly, we login to the cPanel account.
  2. Next, we go to the Software section.
  3. Here, we click the drop-down to Select the PHP version.
  4. Now, select the PHP extension mbstring.
  5. Finally, click the save button.

[Having difficulty in enabling PHP mbstring? – We will do it for you.]

Conclusion

In short, to manage non-ASCII strings, we enable mbstring in php.ini. Today, we saw how to enable mbstring on different server platforms. We also saw how our Support Engineers fix the mbstring error in phpMyAdmin.

PREVENT YOUR SERVER FROM CRASHING!

Never again lose customers to poor server speed! Let us help you.

Our server experts will monitor & maintain your server 24/7 so that it remains lightning fast and secure.

Источник

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

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

Опции конфигурации mbstring

Имя По умолчанию Меняемо Список изменений
mbstring.language «neutral» PHP_INI_ALL Доступна начиная с PHP 4.3.0. PHP_INI_PERDIR в PHP
mbstring.detect_order NULL PHP_INI_ALL Доступна начиная с PHP 4.0.6.
mbstring.http_input «pass» PHP_INI_ALL Доступна начиная с PHP 4.0.6. Устарела с PHP 5.6.0.
mbstring.http_output «pass» PHP_INI_ALL Доступна начиная с PHP 4.0.6. Устарела с PHP 5.6.0.
mbstring.internal_encoding NULL PHP_INI_ALL Доступна начиная с PHP 4.0.6. Устарела с PHP 5.6.0.
mbstring.script_encoding NULL PHP_INI_ALL Доступна начиная с PHP 4.3.0. Удалена в PHP 5.4.0. Используйте zend.script_encoding
mbstring.substitute_character NULL PHP_INI_ALL Доступна начиная с PHP 4.0.6.
mbstring.func_overload «0» PHP_INI_SYSTEM PHP_INI_PERDIR с PHP 4.3 до 5.2.6, а в других версиях — PHP_INI_SYSTEM. Доступна с PHP 4.2.0.
mbstring.encoding_translation «0» PHP_INI_PERDIR Доступна начиная с PHP 4.3.0.
mbstring.strict_detection «0» PHP_INI_ALL Доступна начиная с PHP 5.1.2.

Для подробного описания констант PHP_INI_*, обратитесь к разделу Где могут быть установлены параметры конфигурации.

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

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

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

Данная возможность была xmlns УСТАРЕВШЕЙ начиная с версии PHP 5.6.0. Крайне не рекомендуется полагаться на эту возможность в будущем.

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

В PHP 5.6 и новее должен оставить эту опцию пустой и задать вместо нее default_charset .

Данная возможность была xmlns УСТАРЕВШЕЙ начиная с версии PHP 5.6.0. Крайне не рекомендуется полагаться на эту возможность в будущем.

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

В PHP 5.6 и новее должен оставить эту опцию пустой и задать вместо нее default_charset .

Данная возможность была xmlns УСТАРЕВШЕЙ начиная с версии PHP 5.6.0. Крайне не рекомендуется полагаться на эту возможность в будущем.

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

В PHP 5.6 и новее должен оставить эту опцию пустой и задать вместо нее default_charset .

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

Определяет символ для замены недопустимых символов кодировки.

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

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

Позволяет строгое определение кодировки.

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

Хотя популярные браузеры способны достаточно точно определить кодировку символов данного HTML-документа, было бы лучше установить параметр charset в поле Content-Type HTTP-заголовка в требуемое значение или указать ее в параметре 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

Источник

Настройка параметров mbstring

Для корректной работы большинства современных CMS-систем (в том числе 1С-Битрикс) требуется поддержка UTF-8 в PHP.

Начиная с версии PHP 5.2.8. указание параметров mbstring через файлы .htaccess не поддерживается. Поэтому настройки параметров поддержки UTF-8 выполняются в панели управления хостинга.

Рассмотрим на примере стандартных для 1С-Битрикс параметров:

mbstring.func_overload = 2 mbstring.internal_encoding = UTF-8

Откройте панель управления вашей услугой:

  • виртуальным хостингом vHost и Bitrix (инструкция),
  • виртуальным сервером RED.Site (инструкция),
  • выделенным сервером RED.Server (инструкция).

На виртуальном хостинге перейдите в «WWW» (1) → «PHP» (2).

На сервере — в «Настройки PHP».

Выделите версию PHP, которую вы используете, и нажмите кнопку «Расширенные настройки».

После того, как вы перейдете в настройки PHP, выделите курсором строку «mbstring» и нажмите на карандаш в конце строки или на кнопку «Изменить».

Укажите нужные параметры и примените изменения.

Источник

Оцените статью