SERVICE こんな事ができます

CNTACT ご相談はお気軽に

 ABOUT US こんな会社です



2009/11/19 by マッチー

mb_convert_kanaを使って濁点や半濁点を除去してみる

どれくらい使う機会があるのかは分からないですけど、ここ最近の自分はそれなりにこのやり方を多用していたので、忘れないうちにメモ。

mb_convert_kanaを使うと全角文字を半角にできたり半角文字を全角にできたり急に異性にモテるようになったりします。嘘です。異性と接することもなく平日も土日もひたすらコーディングばっかりしてたってモテるはずがない。

mb_convert_kanaで全角ひらがなを半角にすると、濁点も1文字として変換される。だからそれをもう一回全角に変換してやれば濁点や半濁点のない全角文字が取得できる。ある文字列があ行なのかか行なのか、そういうのを判別するときに使えると思う。

では、文字列がか行かどうかを判定してみましょう。

8行目の時点で$strの中身は「ゴジラ」になる。このとき、「コ」や「シ」と「゛」はそれぞれが1文字として分けられている。そして11行目でそれを全角ひらがなに変換すると、$strは「こ゛し゛ら」になるので、その文字列の先頭の1文字だけを取得すれば、$strの中身は「こ」になる。in_array関数は対象の配列の中に該当する文字(今回の場合は「こ」)があるかどうかを判定し、あったらtrueを返す。今回は配列の中に「こ」があるので、結果はtrueになる。

こんな感じで、各行なんかの判定をすれば良いのではないかな・・・と思う。いや、もちろん配列の中に濁点なんかも全部書いたって良いんだけどね。↓みたいな感じで。

でも何かちょっとあれじゃん?