[PHP-users 2134] Re: 全角ハイフンの変換について

M. Takahashi php-users@php.gr.jp
Tue, 18 Sep 2001 13:27:47 +0900


高橋です。
解決策ではないのですが参考までに。


> 神崎です。
> 現在全角のハイフンを半角にする処理でワーニングが出て困っております。
> 文字列の処理は全てSIFT_JISです。
>
> $name = 'ちーず';
> $name = ereg_replace( 'ー', '-', $name );
>
> のようにすると
> Warning: REG_EBRACK in /home/hoge/public_html/test.php on line 8
> のようなワーニングがでます。

mbereg_replaceでもエラーになりますね。メッセージは違いますが。
mbregex compile err: invalid regular expression; '[' can't be the last
character ie. can't start range at the end of pattern

$name = ereg_replace( '[ー]', '-', $name );
とするとエラーメッセージがでなくなりますが、ハイフンが二つになってしまいま
す。
このへんがヒントになるのでは?

> 8行目が上記のereg_replaceを使用しているところです。
> またハイフンには下記の6種類があると思います。
> これらを全て半角のハイフンに処理することが目標です。
> (1)ー
> (2)−
> (3)―
> (4)ー
> (5)‐
> (6)−
> またわけあってmbereg_replace関数は使用できません。
> どかたか回避方法をご存知の方いらっしゃいましたらご教授いただけませんでしょ
> うか?

str_replaceを代わりに使うのはどうですか?