mb_convert_kana()
mb_convert_kanaとは、特定の日本語の文字を半角カナにしたり、全角英数を半角英数にしたい場合などに用いられる関数です。よく入力フォームで半角での記入を促していても半角と全角の区別が付かない人もおられます。その人たちが、全角で入力されても構わないようにするためにこのmb_convert_kana()は非常に使えます。
[書式]
$str = mb_convert_kana(変数,オプション,エンコーディング);
mb_convert_kana()の一覧
以下では、オプションの解説をしています。なお、オプションを指定しない場合、"KV"(「半角カタカナ」を「全角カタカナ」に変換し、かつ、濁点付きの文字を一文字に変換するよう)になっています。
r : 「全角」英字を「半角(ハンカク)」に変換
R : 「半角(ハンカク)」英字を「全角」に変換
n : 「全角」数字を「半角(ハンカク)」に変換
N : 「半角(ハンカク)」数字を「全角」に変換
a : 「全角」英数字を「半角(ハンカク)」に変換
A : 「半角(ハンカク)」英数字を「全角」に変換
s : 「全角」スペースを「半角(ハンカク)」に変換
S : 「半角(ハンカク)」スペースを「全角」に変換
k : 「全角片仮名」を「半角(ハンカク)片仮名」に変換
K : 「半角(ハンカク)片仮名」を「全角片仮名」に変換
h : 「全角ひら仮名」を「半角(ハンカク)片仮名」に変換
H : 「半角(ハンカク)片仮名」を「全角ひら仮名」に変換
c : 「全角かた仮名」を「全角ひら仮名」に変換
C : 「全角ひら仮名」を「全角かた仮名」に変換
V : 濁点付きの文字を一文字に変換。"K","H"と共に使用します。
以下に簡単なサンプルを記載しておきます。
全角英数字を半角英数字に変換する[オプション a ]
$str = "SakuraTamakichi44";
print $str . "(全角)";
print mb_convert_kana($str,"a") . "(半角)";
//(結果)
mb_convert_kana()を使う上での注意
mb_convert_kana()を使う際、まず、文字コードの問題にぶつかります。通常、WindowsはShift_JISを、LinuxやUNIXなどではEUC-JPが主に使われています。また、PHPプログラムを作成する際、どうしてもShift_JISで制作する場合が多いと思いますので、作成するにあたってはEUC-JP形式で書き出すか、Shift_JISで作成をされた際には、mb_convert_kana()を使う際、変換する変数が Shift_JIS であることを伝える必要があります。そうでないと、文字化けが発生してしまう場合があります。また、Windowsサーバであれば、Shift_JISのままmb_convert_kana()を使用しても問題はありません。
Shift_JISでPHPを作成した場合
$str = "SEKAINOCHUUSHIN";
print $str . "<br />";
$str = mb_convert_kana($str,"a","Shift_JIS");
print $str;
//(結果)
文字コードが不明でPHPを作成した場合(作成したのはShift_JIS)
$str = "SEKAINOCHUUSHIN";
print $str . "<br />";
$str = mb_convert_kana($str,"a","auto");
print $str;
//(結果)
