misc.log

日常茶飯事とお仕事と

PHPで全角半角変換を行う

全角文字、半角文字の混在が検索処理などを阻害しているとして、入力時に整形処理を行ってほしいとの要望。簡単にできないか、と思って調べたところ、標準関数でありました。あるんですね。いいなこれ。

関数名は「mb_convert_kana」。使い方は下記のような感じ。

<?php 
	$source = "アイウ ABC #&%";
	var_dump( mb_convert_kana($source, 'KVa', "shift_jis") ); 
?>

上記の処理結果はこんな感じになります。

string 'アイウ ABC #&%' (length=14)

第2引数で変換処理のパターンを指定しますが、「a」を指定すると英数字のみならず全角記号も半角にしてくれるようです。これを使えば

  • カナは全角で
  • 英数字記号は半角で

というルールを実装するのも簡単ですね。

プログラマのための文字コード技術入門 (WEB+DB PRESS plus) (WEB+DB PRESS plusシリーズ)

プログラマのための文字コード技術入門 (WEB+DB PRESS plus) (WEB+DB PRESS plusシリーズ)