[PHP-users 26433] mb_eregi_replaceの置換について
shima tetuo
mlmlml @ lily.freemail.ne.jp
2005年 8月 12日 (金) 10:58:12 JST
tetuoです
-----------------------
環境
-----------------------
windows 2000 Server
PHP 4.3.11(ソースはUTF-8)
^^^^^^^^^^^^^^^^^
mb_ereg_replaceで、全角かなと全角スペース以外を置換する際に、どうも予期
する結果になりません。
***********
予想する結果
***********
$string = " a ";
var_dump(mb_ereg_replace('[^ァ-ヶ ]', '*', $string));
// string(13) " * "
***********
現在の状況
***********
$string = " a ";
var_dump(mb_ereg_replace('[^ァ-ヶ ]', '*', $string));
// string(9) "*・*・**・*・"
-----------------------
テストコード
-----------------------
<?php
$string = " a ";
var_dump(mb_ereg_replace('[^0-9 ]', '*', $string));
// string(13) " * " になります
$string = " a ";
var_dump(mb_ereg_replace('[^ァ-ヶ ]', '*', $string));
// string(9) "*・*・**・*・" になります
?>
************************************
注意:
「string(9) "*・*・**・*・" になります」の「・」は、表示できない文字だっ
たので、メール作成時に変更して書いています
************************************
-----------------------
分かっている事
-----------------------
ソースをEUC-JPで、上記テストコードを実行すると、期待する
" * "
になります。
これは、UTF-8固有の問題なのでしょうか?それともmb_ereg_*の問題になるので
しょうか?
分かる方の連絡お待ちしております。
PHP-users メーリングリストの案内