マルチバイト文字列
PHP Manual

関数のオーバーロード機能

PHP アプリケーションの多くは、英語等のシングルバイトの言語用に設計されており、 日本語を含むマルチバイト文字列を扱う場合には問題を生じる場合があります。 substr() 等の PHP の文字列関数の多くは、 マルチバイト文字列に対応していません。

mbstring では、 対応するマルチバイト文字対応版の関数で既存の PHP 関数を オーバーロードする機能をサポートします。関数のオーバーロードを行うと、例えば substr() を PHP スクリプトでコールした場合に、 mb_substr() が代わりにコールされるようになります。 これにより、マルチバイト文字に対応しないアプリケーションの移植が容易となります。

関数オーバーロードを使用するには、php.inimbstring.func_overload ディレクティブに正の値を指定します。 これは、オーバーロードされる関数の種類を指定するビットマスクの組み合わせとなります。 mail() 関数をオーバーロードするには 1 を指定します。 2 は文字列関数、4 は正規表現関数を表します。つまり、例えば 7 を指定すると、メール関数、文字列関数および正規表現関数が オーバーロードされることになります。オーバーロードされる関数の一覧を以下に示します。

オーバーロードされる関数
mbstring.func_overload の値 元の関数 オーバーロードする関数
1 mail() mb_send_mail()
2 strlen() mb_strlen()
2 strpos() mb_strpos()
2 strrpos() mb_strrpos()
2 substr() mb_substr()
2 strtolower() mb_strtolower()
2 strtoupper() mb_strtoupper()
2 substr_count() mb_substr_count()
4 ereg() mb_ereg()
4 eregi() mb_eregi()
4 ereg_replace() mb_ereg_replace()
4 eregi_replace() mb_eregi_replace()
4 split() mb_split()

注意: ディレクトリ単位の設定でこのオプションを使用することは推奨されません。 これは、実際の運用環境ではまだ安定性が確認されておらず、 予期しない結果をもたらす可能性があるためです。


マルチバイト文字列
PHP Manual
[お役立ちリンク集] NPO法人の設立(東京・大阪) 人材派遣・アルバイト 不動産・賃貸・マンション ハイブリッド派遣 堺市の入院・内科 京都市のインプラント 会社設立 産業廃棄物収集運搬業許可 風俗営業許可(バー・キャバクラ等) | ディレクトリ2 | ディレクトリ3 | ディレクトリ4 | ディレクトリ5 | ディレクトリ6 | ディレクトリ7 | ディレクトリ8 | ディレクトリ9 | ディレクトリ10 | ディレクトリ11 | ディレクトリ12 | ディレクトリ13 | ディレクトリ14 | ディレクトリ15 | ディレクトリ16 | ディレクトリ17 | ディレクトリ18 | ディレクトリ19 | ディレクトリ20 | ディレクトリ21 | ディレクトリ22 | ディレクトリ23 | ディレクトリ24 | ディレクトリ25 | ディレクトリ26 | ディレクトリ27 | ディレクトリ28 | ディレクトリ29 | ディレクトリ30 | ディレクトリ31 | ディレクトリ32 | ディレクトリ33 | ディレクトリ34 | ディレクトリ35 | 人材派遣・アルバイト | 人材派遣・アルバイト | ディレクトリ36 |