hirokawa Sun Mar 10 01:24:02 2002 EDT
Modified files:
/phpdoc/ja/functions mbstring.xml
Log:
added description about function overload.
Index: phpdoc/ja/functions/mbstring.xml
diff -u phpdoc/ja/functions/mbstring.xml:1.17 phpdoc/ja/functions/mbstring.xml:1.18
--- phpdoc/ja/functions/mbstring.xml:1.17 Sat Mar 9 18:32:44 2002
+++ phpdoc/ja/functions/mbstring.xml Sun Mar 10 01:24:01 2002
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="utf-8"?>
-<!-- $Revision: 1.17 $ -->
+<!-- $Revision: 1.18 $ -->
<reference id="ref.mbstring">
<title>マルチバイト文字列関数(mbstring)</title>
<titleabbrev>
@@ -412,16 +412,16 @@
;; 無効な文字を出力しない
mbstring.substitute_character = none
]]>
- </programlisting>
- </example>
- </para>
- <para>
- <example>
- <title>
- <literal>SJIS</literal>ユーザ用の<literal>php.ini</literal>の
- 設定
- </title>
- <programlisting>
+ </programlisting>
+ </example>
+ </para>
+ <para>
+ <example>
+ <title>
+ <literal>SJIS</literal>ユーザ用の<literal>php.ini</literal>の
+ 設定
+ </title>
+ <programlisting>
<![CDATA[
;; 出力のバッファリングを有効に
output_buffering = On
@@ -444,10 +444,107 @@
;; 無効な文字を出力しない
mbstring.substitute_character = none
]]>
- </programlisting>
- </example>
- </para>
- </sect2>
+ </programlisting>
+ </example>
+ </para>
+ </sect2>
+
+ <sect2 id="mb-overload">
+
+<title>マルチバイト対応版関数による既存関数のオーバーロード</title>
+ <para>
+
+PHPアプリケーションの多くは、英語等のシングルバイトの言語用に設計
+
+されており、日本語を含むマルチバイト文字列を扱う場合には問題を生
+ じる場合があります。<function>substr</function>等のPHPの文字列関
+ 数の多くはマルチバイト文字列に対応していません。
+ </para>
+ <para>
+
+マルチバイト拡張モジュール(mbstring)では、文字列を処理するPHP関数
+
+のマルチバイト対応版(例えば、<function>substr</function>の場合は
+ <function>mb_substr</function>)をサポートしています。
+ </para>
+ <para>
+ マルチバイト拡張モジュール(mbstring)では、PHP
+4.2.0以降で既存の
+
+PHP関数を対応するマルチバイト文字対応版の関数でオーバーロードする
+
+機能をサポートします。関数のオーバーロードを行うと、例えば
+ <function>substr</function>をPHPスクリプトでコールした場合に、
+ <function>mb_substr</function>が代わりにコールされるようになりま
+
+す。これにより、マルチバイト文字に対応しないアプリケーションの移
+ 植が容易となります。
+ </para>
+ <para>
+ 関数オーバーロードを使用するには、設定ファイル php.iniの
+ <literal>mbstring.func_overload</literal>ディレクティブに0以外の
+
+値を設定します。設定値によりオーバーロードされる関数の種類が異な
+
+ります。メール関数の場合は1、文字列関数は2、正規表現関数は4を使用
+
+します。論理和をとることにより複数の値を指定可能です。例えば、7を
+
+指定すると全てのメール、文字列、正規表現関数をオーバーロードしま
+ す。オーバーロードされる関数を下表に示します。
+ <table>
+ <title>オーバーロードされる関数</title>
+ <tgroup cols="3">
+ <thead>
+ <row>
+ <entry>mbstring.func_overloadの値</entry>
+ <entry>元の関数</entry>
+ <entry>オーバーロードする関数</entry>
+ </row>
+ </thead>
+ <tbody>
+ <row>
+ <entry>1</entry>
+ <entry>mail()</entry>
+ <entry>mb_send_mail()</entry>
+ </row>
+ <row>
+ <entry>2</entry>
+ <entry>strlen()</entry>
+ <entry>mb_strlen()</entry>
+ </row>
+ <row>
+ <entry>2</entry>
+ <entry>strpos()</entry>
+ <entry>mb_strpos()</entry>
+ </row>
+ <row>
+ <entry>2</entry>
+ <entry>strrpos()</entry>
+ <entry>mb_strrpos()</entry>
+ </row>
+ <row>
+ <entry>2</entry>
+ <entry>substr()</entry>
+ <entry>mb_substr()</entry>
+ </row>
+ <row>
+ <entry>4</entry>
+ <entry>ereg()</entry>
+ <entry>mb_ereg()</entry>
+ </row>
+ <row>
+ <entry>4</entry>
+ <entry>eregi()</entry>
+ <entry>mb_eregi()</entry>
+ </row>
+ <row>
+ <entry>4</entry>
+ <entry>ereg_replace()</entry>
+ <entry>mb_ereg_replace()</entry>
+ </row>
+ <row>
+ <entry>4</entry>
+ <entry>eregi_replace()</entry>
+ <entry>mb_eregi_replace()</entry>
+ </row>
+ <row>
+ <entry>4</entry>
+ <entry>split()</entry>
+ <entry>mb_split()</entry>
+ </row>
+ </tbody>
+ </tgroup>
+ </table>
+ </para>
+ </sect2>
<sect2 id="mb-ja-basic">
<title>日本語のマルチバイト文字に関する基本事項</title>