fetus Diary

2008/08/17(日) - PHP

PHPってそんなからくり持ってたの?>オーバーロード

php.ini

; overload(replace) single byte functions by mbstring functions.
; mail(), ereg(), etc are overloaded by mb_send_mail(), mb_ereg(),
; etc. Possible values are 0,1,2,4 or combination of them.
; For example, 7 for overload everything.
; 0: No overload
; 1: Overload mail() function
; 2: Overload str*() functions
; 4: Overload ereg*() functions
;mbstring.func_overload = 0

この辺の話ですね。mb_* を持っている関数なら置き換えてくれるらしいです。逆に、mb_* を持っていない関数は置き換えられないので str_replace を使うと悲しい目にあうかも知れません。

オーバーロードされた場合の挙動は、内部エンコーディングに依存したハズです。

; internal/script encoding.
; Some encoding cannot work as internal encoding.
; (e.g. SJIS, BIG5, ISO-2022-*)
;mbstring.internal_encoding = EUC-JP

…と書いてある通り、日本人の書いたスクリプトにありがちな SJIS で書いて SJIS で処理(ここで言う SJIS には、Shift_JIS の他に CP932(SJIS-WIN) も含むハズ)するスクリプトの場合、別の意味で悲しいことになるかもしれません。

# どっちも実際に悲しいことになるのを試したわけではありませんがー。

コメント

コメントはありません。

名前
メール
コメント

※HTML タグは使えません。HTTP URL には自動リンクが張られます。

Captcha
画像から読み取れる文字を入力: