<?php
include_once $_SERVER['DOCUMENT_ROOT'] . '/include/shared-manual.inc';
$TOC = array();
$TOC_DEPRECATED = array();
$PARENTS = array();
include_once dirname(__FILE__) ."/toc/mbstring.setup.inc";
$setup = array (
  'home' => 
  array (
    0 => 'index.php',
    1 => 'PHP Manual',
  ),
  'head' => 
  array (
    0 => 'UTF-8',
    1 => 'ja',
  ),
  'this' => 
  array (
    0 => 'mbstring.configuration.php',
    1 => '実行時設定',
    2 => '実行時設定',
  ),
  'up' => 
  array (
    0 => 'mbstring.setup.php',
    1 => 'インストール/設定',
  ),
  'prev' => 
  array (
    0 => 'mbstring.installation.php',
    1 => 'インストール手順',
  ),
  'next' => 
  array (
    0 => 'mbstring.constants.php',
    1 => '定義済み定数',
  ),
  'alternatives' => 
  array (
  ),
  'source' => 
  array (
    'lang' => 'ja',
    'path' => 'reference/mbstring/ini.xml',
  ),
  'history' => 
  array (
  ),
);
$setup["toc"] = $TOC;
$setup["toc_deprecated"] = $TOC_DEPRECATED;
$setup["parents"] = $PARENTS;
manual_setup($setup);

contributors($setup);

?>
<div id="mbstring.configuration" class="section">
 <h2 class="title">実行時設定</h2>
 <p class="simpara">
<var class="filename">php.ini</var> の設定により動作が変化します。
</p>
 <p class="para">
 <table class="doctable table">
  <caption><strong>mbstring 設定オプション</strong></caption>
  
   <thead>
    <tr>
      <th>名前</th>
      <th>デフォルト</th>
      <th>変更可能</th>
      <th>変更履歴</th>
    </tr>

   </thead>

   <tbody class="tbody">
    <tr>
      <td><a href="mbstring.configuration.php#ini.mbstring.language" class="link">mbstring.language</a></td>
     <td>&quot;neutral&quot;</td>
     <td><strong><code><a href="info.constants.php#constant.ini-all">INI_ALL</a></code></strong></td>
     <td class="empty">&nbsp;</td>
    </tr>

    <tr>
      <td><a href="mbstring.configuration.php#ini.mbstring.detect-order" class="link">mbstring.detect_order</a></td>
     <td>NULL</td>
     <td><strong><code><a href="info.constants.php#constant.ini-all">INI_ALL</a></code></strong></td>
     <td class="empty">&nbsp;</td>
    </tr>

    <tr>
      <td><a href="mbstring.configuration.php#ini.mbstring.http-input" class="link">mbstring.http_input</a></td>
     <td>&quot;pass&quot;</td>
     <td><strong><code><a href="info.constants.php#constant.ini-all">INI_ALL</a></code></strong></td>
     <td>非推奨になりました。</td>
    </tr>

    <tr>
      <td><a href="mbstring.configuration.php#ini.mbstring.http-output" class="link">mbstring.http_output</a></td>
     <td>&quot;pass&quot;</td>
     <td><strong><code><a href="info.constants.php#constant.ini-all">INI_ALL</a></code></strong></td>
     <td>非推奨になりました。</td>
    </tr>

    <tr>
      <td><a href="mbstring.configuration.php#ini.mbstring.internal-encoding" class="link">mbstring.internal_encoding</a></td>
     <td>NULL</td>
     <td><strong><code><a href="info.constants.php#constant.ini-all">INI_ALL</a></code></strong></td>
     <td>非推奨になりました。</td>
    </tr>

    <tr>
      <td><a href="mbstring.configuration.php#ini.mbstring.substitute-character" class="link">mbstring.substitute_character</a></td>
     <td>NULL</td>
     <td><strong><code><a href="info.constants.php#constant.ini-all">INI_ALL</a></code></strong></td>
     <td class="empty">&nbsp;</td>
    </tr>

    <tr>
      <td><a href="mbstring.configuration.php#ini.mbstring.func-overload" class="link">mbstring.func_overload</a></td>
     <td>&quot;0&quot;</td>
     <td><strong><code><a href="info.constants.php#constant.ini-system">INI_SYSTEM</a></code></strong></td>
     <td>
       PHP 7.2.0 で非推奨になり、PHP 8.0.0 で削除されました。
     </td>
    </tr>

    <tr>
      <td><a href="mbstring.configuration.php#ini.mbstring.encoding-translation" class="link">mbstring.encoding_translation</a></td>
     <td>&quot;0&quot;</td>
     <td><strong><code><a href="info.constants.php#constant.ini-perdir">INI_PERDIR</a></code></strong></td>
     <td class="empty">&nbsp;</td>
    </tr>

      <tr>
      <td><a href="mbstring.configuration.php#ini.mbstring.http-output-conv-mimetypes" class="link">mbstring.http_output_conv_mimetypes</a></td>
      <td>&quot;^(text/|application/xhtml\+xml)&quot;</td>
      <td><strong><code><a href="info.constants.php#constant.ini-all">INI_ALL</a></code></strong></td>
      <td class="empty">&nbsp;</td>
     </tr>

    <tr>
      <td><a href="mbstring.configuration.php#ini.mbstring.strict-detection" class="link">mbstring.strict_detection</a></td>
     <td>&quot;0&quot;</td>
     <td><strong><code><a href="info.constants.php#constant.ini-all">INI_ALL</a></code></strong></td>
     <td class="empty">&nbsp;</td>
    </tr>

     <tr>
      <td><a href="mbstring.configuration.php#ini.mbstring.regex-retry-limit" class="link">mbstring.regex_retry_limit</a></td>
      <td>&quot;1000000&quot;</td>
      <td><strong><code><a href="info.constants.php#constant.ini-all">INI_ALL</a></code></strong></td>
      <td>PHP 7.4.0 以降で利用可能です。</td>
     </tr>

     <tr>
      <td><a href="mbstring.configuration.php#ini.mbstring.regex-stack-limit" class="link">mbstring.regex_stack_limit</a></td>
      <td>&quot;100000&quot;</td>
      <td><strong><code><a href="info.constants.php#constant.ini-all">INI_ALL</a></code></strong></td>
      <td>PHP 7.3.5 以降で利用可能です。</td>
     </tr>

   </tbody>
  
 </table>

  INI_* モードの詳細および定義については
<a href="configuration.changes.modes.php" class="xref">どこで設定を行うのか</a> を参照してください。
 </p>

 <p class="para">以下に設定ディレクティブに関する
簡単な説明を示します。</p>

 <p class="para">
  <dl>
   
    <dt id="ini.mbstring.language">
     <code class="parameter">mbstring.language</code>
     <span class="type"><a href="language.types.string.php" class="type string">string</a></span>
    </dt>
    <dd>
     <p class="para">
      mbstring で使用される言語設定(NLS)のデフォルト値。
      この設定は <code class="literal">mbstring.internal_encoding</code> を定義するため、
      <var class="filename">php.ini</var> の中で <code class="literal">mbstring.internal_encoding</code> は、
      <code class="literal">mbstring.language</code> の後に置く必要があることに注意してください。
     </p>
    </dd>
   
   
    <dt id="ini.mbstring.encoding-translation">
     <code class="parameter">mbstring.encoding_translation</code>
     <span class="type"><a href="language.types.boolean.php" class="type bool">bool</a></span>
    </dt>
    <dd>
     <p class="para">
      入力される HTTP クエリに関して、
      文字エンコーディング検出および内部文字エンコーディングへの変換を行う
      透過的な文字エンコーディングフィルタを有効にします。
     </p>
    </dd>
   
   
    <dt id="ini.mbstring.internal-encoding">
     <code class="parameter">mbstring.internal_encoding</code>
     <span class="type"><a href="language.types.string.php" class="type string">string</a></span>
    </dt>
    <dd>
     <div class="warning"><strong class="warning">警告</strong>
      <p class="para">この非推奨の機能は、<em>きっと</em>
将来 <em>削除</em> されるでしょう。</p>
     </div>
     <p class="para">
      内部文字エンコーディングのデフォルト値を定義します。
     </p>
     <p class="para">
      この値は空のままにしておいて、代わりに
      <a href="ini.core.php#ini.default-charset" class="link"><code class="parameter">default_charset</code></a>
      を設定すべきです。
     </p>
    </dd>
   
   
    <dt id="ini.mbstring.http-input">
     <code class="parameter">mbstring.http_input</code>
     <span class="type"><a href="language.types.string.php" class="type string">string</a></span>
    </dt>
    <dd>
     <div class="warning"><strong class="warning">警告</strong>
      <p class="para">この非推奨の機能は、<em>きっと</em>
将来 <em>削除</em> されるでしょう。</p>
     </div>
     <p class="para">
      HTTP 入力文字エンコーディングのデフォルト値を定義します。
     </p>
     <p class="para">
      この値は空のままにしておいて、代わりに
      <a href="ini.core.php#ini.default-charset" class="link"><code class="parameter">default_charset</code></a>
      を設定すべきです。
     </p>
    </dd>
   
   
    <dt id="ini.mbstring.http-output">
     <code class="parameter">mbstring.http_output</code>
     <span class="type"><a href="language.types.string.php" class="type string">string</a></span>
    </dt>
    <dd>
     <div class="warning"><strong class="warning">警告</strong>
      <p class="para">この非推奨の機能は、<em>きっと</em>
将来 <em>削除</em> されるでしょう。</p>
     </div>
     <p class="para">
      HTTP 出力文字エンコーディングのデフォルト値を定義します
      (出力は、内部エンコーディングから HTTP 出力エンコーディングに変換された上で出力されます)。
     </p>
     <p class="para">
      この値は空のままにしておいて、代わりに
      <a href="ini.core.php#ini.default-charset" class="link"><code class="parameter">default_charset</code></a>
      を設定すべきです。
     </p>
    </dd>
   
   
    <dt id="ini.mbstring.detect-order">
     <code class="parameter">mbstring.detect_order</code>
     <span class="type"><a href="language.types.string.php" class="type string">string</a></span>
    </dt>
    <dd>
     <p class="para">
      文字コード検出のデフォルト値を定義します。
      <span class="function"><a href="function.mb-detect-order.php" class="function">mb_detect_order()</a></span>も参照ください。
     </p>
    </dd>
   
   
    <dt id="ini.mbstring.substitute-character">
     <code class="parameter">mbstring.substitute_character</code>
     <span class="type"><a href="language.types.string.php" class="type string">string</a></span>
    </dt>
    <dd>
     <p class="para">
      無効な文字を代替する文字を定義します。
      サポートされる値は、<span class="function"><a href="function.mb-substitute-character.php" class="function">mb_substitute_character()</a></span> を参照ください。
     </p>
    </dd>
   
   
    <dt id="ini.mbstring.func-overload">
     <code class="parameter">mbstring.func_overload</code>
     <span class="type"><a href="language.types.string.php" class="type string">string</a></span>
    </dt>
    <dd>
     <div class="warning"><strong class="warning">警告</strong><p class="simpara">この機能は PHP 7.2.0 で
<em>非推奨</em> になり、PHP 8.0.0 で <em>削除</em>
されました。この機能に頼らないことを強く推奨します。</p></div>
     <p class="para">
      シングルバイト対応の関数を mbstring 関数の対応する関数でオーバーロード
      (置換)します。詳細は、
      <a href="mbstring.overload.php" class="link">関数のオーバーロード</a>
      を参照ください。
     </p>
     <p class="para">
      この設定は、<var class="filename">php.ini</var> でしか変更できません。
     </p>
    </dd>
   
   
    <dt id="ini.mbstring.http-output-conv-mimetypes">
     <code class="parameter">mbstring.http_output_conv_mimetypes</code>
     <span class="type"><a href="language.types.string.php" class="type string">string</a></span>
    </dt>
    <dd>
     <p class="para">
     </p>
    </dd>
   
   
    <dt id="ini.mbstring.strict-detection">
     <code class="parameter">mbstring.strict_detection</code>
     <span class="type"><a href="language.types.boolean.php" class="type bool">bool</a></span>
    </dt>
    <dd>
     <p class="para">
      厳密なエンコーディング検出を有効にします。
      詳しい説明と例は、<span class="function"><a href="function.mb-detect-encoding.php" class="function">mb_detect_encoding()</a></span> を参照ください。
     </p>
    </dd>
   
   
    <dt id="ini.mbstring.regex-retry-limit">
     <code class="parameter">mbstring.regex_retry_limit</code>
     <span class="type"><a href="language.types.integer.php" class="type int">int</a></span>
    </dt>
    <dd>
     <p class="para">
      mbregex のマッチングの間に行われる、バックトラッキングの量を制限します。
     </p>
     <p class="para">
      この設定は、oniguruma &gt;= 6.8.0 と PHP をリンクした場合にのみ利用可能です。
     </p>
    </dd>
   
   
    <dt id="ini.mbstring.regex-stack-limit">
     <code class="parameter">mbstring.regex_stack_limit</code>
     <span class="type"><a href="language.types.integer.php" class="type int">int</a></span>
    </dt>
    <dd>
     <p class="para">
      mbstring の正規表現エンジンの、スタックの深さを制限します。
     </p>
    </dd>
   
  </dl>
 </p>

 <p class="para">
  <a href="http://www.w3.org/TR/REC-html40/interact/forms.html#adef-accept-charset" class="link external">&raquo;&nbsp;HTML 4.01 の仕様</a>
  によると、Web ブラウザは、
  フォームのデータを投稿する際にページで使用される文字エンコーディングと
  異なるエンコーディングを使用することができます。
  ブラウザで使用される文字エンコーディングを検出するには、
  <span class="function"><a href="function.mb-http-input.php" class="function">mb_http_input()</a></span>
  を参照ください。
 </p>
 <p class="para">
  一般的に使用されるブラウザでは、
  指定したHTML文書の文字エンコーディングをかなり正確に推定することができますが、
  <span class="function"><a href="function.header.php" class="function">header()</a></span> または設定パラメータ
  <a href="ini.core.php#ini.sect.data-handling" class="link">default_charset</a> により、
  <code class="literal">Content-Type</code> HTTP ヘッダで <code class="literal">charset</code>
  を設定する方がより良いでしょう。
 </p>
 <p class="para">
  <div class="example" id="example-1">
  <p><strong>例1 <var class="filename">php.ini</var> 設定の例</strong></p>
   <div class="example-contents">
<div class="annotation-interactive cdata"><pre>
; デフォルトの言語を設定
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 に設定
                                ; &quot;auto&quot; は 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
</pre></div>
   </div>

  </div>
 </p>
 <p class="para">
  <div class="example" id="example-2">
   <p><strong>例2 <code class="literal">EUC-JP</code> ユーザー用の <var class="filename">php.ini</var> の設定</strong></p>
   <div class="example-contents">
<div class="annotation-interactive cdata"><pre>
;; 出力バッファリングを無効にする
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
</pre></div>
   </div>

  </div>
 </p>
 <p class="para">
  <div class="example" id="example-3">
   <p><strong>例3 <code class="literal">SJIS</code> ユーザー用の <var class="filename">php.ini</var>の 設定</strong></p>
   <div class="example-contents">
<div class="annotation-interactive cdata"><pre>
;; 出力のバッファリングを有効に
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

</pre></div>
   </div>

  </div>
 </p>

</div><?php manual_footer($setup); ?>