[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 メーリングリストの案内