実行時設定
php.ini の設定により動作が変化します。
名前 | デフォルト | 変更可能 | 変更履歴 |
---|---|---|---|
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 以降で利用可能です。 |
以下に設定ディレクティブに関する 簡単な説明を示します。
-
mbstring.language
string -
mbstring で使用される言語設定(NLS)のデフォルト値。 この設定は
mbstring.internal_encoding
を定義するため、 php.ini の中でmbstring.internal_encoding
は、mbstring.language
の後に置く必要があることに注意してください。 -
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 と PHP をリンクした場合にのみ利用可能です。
-
mbstring.regex_stack_limit
int -
mbstring の正規表現エンジンの、スタックの深さを制限します。
» HTML 4.01 の仕様 によると、Web ブラウザは、 フォームのデータを投稿する際にページで使用される文字エンコーディングと 異なるエンコーディングを使用することができます。 ブラウザで使用される文字エンコーディングを検出するには、 mb_http_input() を参照ください。
一般的に使用されるブラウザでは、
指定したHTML文書の文字エンコーディングをかなり正確に推定することができますが、
header() または設定パラメータ
default_charset により、
Content-Type
HTTP ヘッダで charset
を設定する方がより良いでしょう。
例1 php.ini 設定の例
; デフォルトの言語を設定 mbstring.language = 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 ; long の例: U+3000,JIS+7E7E
例2 EUC-JP
ユーザー用の php.ini の設定
;; 出力バッファリングを無効にする output_buffering = Off ;; HTTP charsetヘッダを設定 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 SJIS
ユーザー用の php.iniの 設定
;; 出力のバッファリングを有効に output_buffering = On ;; 出力の変換を有効にするために mb_output_handler を設定 output_handler = mb_output_handler ;; HTTPヘッダ charset を設定 default_charset = Shift_JIS ;; デフォルトの言語を日本語に設定 mbstring.language = Japanese ;; HTTP 入力変換を有効にする mbstring.encoding_translation = On ;; HTTP 入力エンコーディング変換を auto に設定 mbstring.http_input = auto ;; SJIS に変換 mbstring.http_output = SJIS ;; 内部エンコーディングを EUC-JP に設定 mbstring.internal_encoding = EUC-JP ;; 無効な文字を出力しない mbstring.substitute_character = none