PHPを使っていて、
- 半角 ⇔ 全角で相互変換した
- ひらがな ⇔ カナカナを変換したい
こういうことって多くないですか?
実はこういう相互変換用に mb_convert_kana 関数っていう超便利な関数があります
ここでは それを使い、半角・全角を相互変換する方法 を色々まとめました。
このページの目次
mb_convert_kaba関数とは...
,まずこの mb_convert_kana 関数の概要について
これはその名の通り、ひらがな・カタカナを相互変換できる関数です。
▼ 変換したい文字列を $str 、オプションを $opt , エンコーディングを $ecnocding をすると、次みたいな感じで文字列を変換できる
1 |
$str = mb_convert_kana( $str, $opt, $encoding ); |
まあ $str を半角とか全角のひらがな・カタカナに変換できる感じ
大事なのは
$opt にオプション(例:
'KV' とか)を渡すことで、
複雑なひらがな・カタカナの変換、半角・全角の変換が簡単にできる訳です。
では次から、よく使う具体的な変換コード例を紹介していきます。
具体的な半角・全角&カタカナ・ひらがな変換のコード例
個人的によく使う mb_convert_kana 関数の使用例は次の通り
1.半角カタカナ ⇔ 全角カタカナに相互変換
こういう変換をしたい場合は、
- 半角カナ ⇒ 全角カナなら 'K' オプション、
- 全角カナ ⇒ 半角カナなら 'k' オプション
それぞれの変換コード例は次の通り
▼ 半角カナ ⇒ 全角カナ の変換コード例
1 2 3 4 5 6 7 8 9 10 11 12 13 |
$str = mb_convert_kana( 'アイウエオ', 'K' ); print_r($str); /// => アイウエオ /// 濁点を含む場合 $str = mb_convert_kana( 'ガギグゲゴ', 'K' ); print_r($str); /// => カ゛キ゛ク゛ケ゛コ゛ /// 濁点込みで1文字にするなら V オプションもつける $str = mb_convert_kana( 'ガギグケゴ', 'KV' ); print_r($str); /// => ガギグケゴ |
Kオプションを単体で使うと、濁点も1文字としてカウントされます。
もし濁点込みで1文字にしたいなら V オプションもつける必要ありです。
▼ 全角カナ ⇒ 半角カナの変換コード例
1 2 3 4 5 6 7 8 |
$str = mb_convert_kana( 'アイウエオ', 'k' ); print_r($str); /// => アイウエオ /// 濁点を含む場合 $str = mb_convert_kana( 'ガギグゲゴ゙', 'k' ); print_r($str); /// => ガギグゲゴ゙ |
こっちの方は V オプションが使えないので少し注意
2.ひらがなを半角全角カタカナに変換
この場合は mb_convert_kana 関数のオプションに、
- ひらがな ⇒ 半角カナなら 'h' オプション、
- ひらがな ⇒ 全角カナなら 'C' オプション
それぞれ、こういうオプションを渡せばOK
▼ ひらがな ⇒ 半角カタカナの変換コード例
1 2 3 4 5 6 7 8 |
$str = mb_convert_kana( 'あいうえお', 'h' ); print_r($str); /// => アイウエオ /// ひらがなは濁点込みででも1文字になる $str = mb_convert_kana( 'がぎぐげご', 'h' ); print_r($str); /// => ガギグゲゴ |
ただし 濁点を含むものは、濁点も含めて1文字として変換される みたいです。
これがカタカナの時との違いですね。(カタカナだと V オプションを付けないとダメ)
▼ ひらがな ⇒ 全角カタカナの変換コード例
1 2 3 4 5 6 7 8 |
$str = mb_convert_kana( 'あいうえお', 'C' ); print_r($str); /// => アイウエオ /// ひらがなは濁点込みででも1文字になる $str = mb_convert_kana( 'がぎぐげご', 'C' ); print_r($str); /// => ガギグゲゴ |
ひらがな ⇒ 半角・全角カタカナの変換はこういう感じ
3.半角数字と全角数字の相互変換
数字を半角・全角にコンバートしたいなら、
- 半角数字 ⇒ 全角数字なら 'N' オプション、
- 全角数字 ⇒ 半角数字なら 'n' オプション
こういう風にオプションを渡せばOK
▼ 半角数字 ⇒ 全角数字の変換コード例
1 2 3 4 |
///半角数字から全角数字に変換 $str = mb_convert_kana( '12345', 'N' ); print_r($str); /// => 12345 |
▼ 全角数字 ⇒ 半角数字の変換コード例
1 2 3 4 |
///全角数字から半角数字に変換 $str = mb_convert_kana( '12345', 'n' ); print_r($str); /// => 12345 |
数字の変換は 郵便番号 とか 電話番号 をデータベースに保管するとか、そういう時に便利かも
4.全角スペースから半角スペースへの相互変換
スペース同士を半角・全角に変換したいなら、
- 全角 ⇒ 半角なら 's' オプション
- 半角 ⇒ 全角なら 'S' オプション
以下このオプションを使った、具体的なコード例
▼ 全角スペース ⇒ 半角スペースの変換コード例
1 2 3 4 5 6 7 8 9 10 |
/// 全角スペースを半角スペースに変換 $str = mb_convert_kana( 'A B C', 's' ); print_r($str); // => A B C /// 他のオプションと併用すると便利 /// 例えば全角カナを半角カナに直すときとか... $str = mb_convert_kana( 'タナカ タロウ', 'ks'); print_r($str); /// => タナカ タロウ |
▼ 半角スペース ⇒ 全角スペースの変換コード例
1 2 3 4 |
/// 半角スペースを全角スペースに変換 $str = mb_convert_kana( 'A B C', 'S' ); print_r($str); /// => A B C |
スペースもデータ保存とかで変換が必要になる場面もあるかもです。
ここまでのまとめ
以上、mb_convert_kana 関数の使い方・コード例でした。
データを整形したいときとか、データベースに保存する値に全角を含めたくないときとか・・・
色々な場面で応用ができそうな便利な関数です。