[PHP-users 3423] Re: 全角から半角への変換について

Atsushi Nakada php-users@php.gr.jp
Thu, 8 Nov 2001 17:03:13 +0900


なかだ です。


> ■ 文字列 = mbereg_replace(正規表現, 置換文字列, 文字列)
> ■ 文字列 = mberegi_replace(正規表現, 置換文字列, 文字列)
>     ereg_replace()、eregi_replace()のマルチバイト文字対応版
>
> これ使えませんか?
PHPのバージョンが[3.0.18-i18n-ja]なので「mbereg_replace」が使用できないで
す。

> 私には普通(?)のカナは全角表示で促音や拗音のみが半角表示というのは
> かまり間抜けなものにしか見えませんが…
そうですか?
濁点などが半分で切られる(?)よりかはましだと考えたのですが・・・

> で、具体的に、どういう文字の組み合わせで問題が生じたのか、
> 検証できるようなコードをなんか提示していただけると、
> お互いに時間が節約できるかも知れません。:-)
そうですね(^^;

では、改めて、

●環境
 PHP 3.0.18-i18n-ja
 PostgreSQL 7.0.2(EUC-JP)
 919シミュレータ(J-skyweb動作確認用)
●目的
 直音以外の文字を半角で表示する
●現在のソース
 $string = ereg_replace("・","・",$string);
 $string = ereg_replace(":",":",$string);
 $string = ereg_replace("/","/",$string);
 $string = ereg_replace("(","(",$string);
 $string = ereg_replace(")",")",$string);
 $string = ereg_replace(" "," ",$string);
 $string = ereg_replace("ー","-",$string);
 $string = ereg_replace("ァ","ァ",$string);
 $string = ereg_replace("ィ","ィ",$string);
 $string = ereg_replace("ゥ","ゥ",$string);
 $string = ereg_replace("ェ","ェ",$string);
 $string = ereg_replace("ォ","ォ",$string);
 $string = ereg_replace("ッ","ッ",$string);
 $string = ereg_replace("ャ","ャ",$string);
 $string = ereg_replace("ュ","ュ",$string);
 $string = ereg_replace("ョ","ョ",$string);
●問題点
 一部の文字列で文字化けが発生する
 <例>
  ファーストフード・ファミレス → フ・璽好肇姚ド糸tァミレス
  軽食・デザート → 軽食糸fザ-ト


# 皆様にご迷惑をおかけしました。
# さらにご迷惑をお掛けしますが、よろしくお願いします。

--
 Atsushi Nakada <system@all-tama.com>