最終更新日:
公開日:
レシピ
文字列
文字の半角/全角表記を整える
mb_convert_kana関数を使って、文字の半角、全角表記を整える方法について解説します。
この記事のポイント
- アルファベットや数字の半角/全角を揃える
- 日本語カタカナの半角/全角を揃える
- ひらがなをカタカナにしたり、逆にカタカナをひらがなに変換する
目次
半角/全角を変換して整える
日本語など英語以外の文字を扱う環境では、半角と全角の2種類の文字を扱うことが多くなります。
そのため、メールアドレスやパスワードの入力などで半角英数字のデータが欲しい場合においても、全角のアルファベットが混じってしまう可能性があります。
そこでmb_convert_kana関数を使って強制的に半角/全角の表記を整えることができます。
コード例
mb_convert_kana( $string, 'r', 'UTF-8');
3つのパラメータですが、前から「半角/全角に変換する文字列」、変換モード、文字コードの順に指定しています。
変換モードは次のようにたくさんのバリエーションが用意されています。
- r – アルファベットについて、全角から半角へ変換
- R – アルファベットについて、半角から全角へ変換
- n – 数字について、全角から半角へ変換
- N – 数字について、半角から全角へ変換
- a – アルファベットと数字について、全角から半角へ変換
- A – アルファベットと数字について、半角から全角へ変換
- s – スペースについて、全角から半角へ変換
- S – スペースについて、半角から全角へ変換
- k – カタカナについて、「全角」から「半角」へ変換
- K – カタカナについて、「半角」から「全角」へ変換
- h – 「全角ひらがな」を「半角カタカナ」へ変換
- H – 「半角カタカナ」を「全角ひらがな」へ変換
- c – 「全角カタカナ」を「全角ひらがな」へ変換
- C – 「全角ひらがな」を「全角カタカナ」へ変換
- V – 濁点付き文字を1文字へ変換。「K」や「H」と合わせて指定
ここからは、いくつかの代表的な変換例をみていきます。
全角アルファベットを半角アルファベットへ変換
全角アルファベットが含まれている文字列を、半角アルファベットへ強制的に変換します。
コード例
// 変換する文字列
$str = "This is CAT.";
// 変換する前
var_dump($str);
// 変換を実行
$str = mb_convert_kana( $str, 'r');
// 変換した後
var_dump($str);
出力例
// 変換する前
string(18) "This is CAT."
// 変換した後
string(12) "This is CAT."
全角アルファベットの「CAT」が、半角アルファベット「CAT」へ変換されました。
全角アルファベットと数字を全て半角へ変換
全角アルファベットと数字が含まれている文字列を、全て半角へ強制的に変換します。
コード例
// 変換する文字列
$str = "30 OCTOBER 2016";
// 変換前の文字列を出力
var_dump($str);
// 変換を実行
$str = mb_convert_kana( $str, 'a');
// 変換後の文字列を出力
var_dump($str);
出力例
// 変換する前
string(41) "30 OCTOBER 2016"
// 変換した後
string(15) "30 OCTOBER 2016"
変換モード「a」は全角アルファベットと全角数字をいずれも半角に変換します。
出力結果からも、半角英数に変換されていることがわかります。
半角カタカナを全角カタカナへ変換
アルファベットや数字以外にも、半角カタカナを全角カタカナへ変換することもできます。
変換モードに「KV」を指定します。
濁点については注意が必要です。
変換モードに「V」を指定するかどうかで、変換後の濁点を1文字として扱うか指定することができます。
コード例
// 変換する文字列
$str = "アルファベット";
// 変換前の文字列を出力
var_dump($str);
// 変換を実行
$str = mb_convert_kana( $str, 'KV');
// 変換後の文字列を出力
var_dump($str);
出力例
// 変換する前
string(24) "アルファベット"
// 変換した後
string(21) "アルファベット"
もし変換モードに「V」を指定しない場合は、次のように濁点も1文字として変換されます。
コード例
// 変換する文字列
$str = "アルファベット";
// 変換前の文字列を出力
var_dump($str);
// 変換を実行
$str = mb_convert_kana( $str, 'K');
// 変換後の文字列を出力
var_dump($str);
出力例
// 変換する前
string(24) "アルファベット"
// 変換した後
string(24) "アルファヘ゛ット"
「ベ」が「ヘ」「゛」の2文字に分かれていることが分かります。