[PHP-users 26439] Re: mb_eregi_replaceの置換について
shima tetuo
mlmlml @ lily.freemail.ne.jp
2005年 8月 12日 (金) 12:33:15 JST
> mb_regex_encoding() で明示してみてはどうでしょうか?
※テストコードを変えてみました。
mb_regex_encoding()を使ってみましたが、デフォルトではすでにmb_internal_encoding()
を使うようなので、UTF-8になっていました。
一応、念のため設定してみましたが、やはり、全角スペースを認識しないようで
す。
正規表現で、[^ァ-ヶ ]としていますので、「全角カナと全角スペース以外」と
いう認識です。
$string = "ゼンカク カタカナ";
に、全角スペースが入っているにもかかわらず、この全角スペースがこの正規表
現にマッチしないようになっています。
-------------------
テストコード
-------------------
<?php
var_dump(mb_regex_encoding());
var_dump(mb_internal_encoding());
mb_regex_encoding(mb_internal_encoding());
var_dump(mb_regex_encoding());
$string = "ゼンカク カタカナ";
var_dump(mb_ereg_replace('[^ァ-ヶ ]', '*', $string));
?>
-----------------
表示(xdebugを入れてます)
-----------------
'UTF-8'
'UTF-8'
'UTF-8'
'ゼンカク*カタカナ'
^^^ アスタリスクになので、全角スペースとは認識されていない?
自分の正規表現の使い方に、問題があるようにも思えますが...
PHP-users メーリングリストの案内