文字列内の全角文字/半角文字を変換する mb_convert_kana()関数

Webアプリケーションでは、ユーザーが入力した文字列を扱う際、文字列内に全角英数字や半角カタカナが含まれていることがあり得ます。PHPでは、文字列内の全角文字/半角文字を変換することができるmb_convert_kana()関数が定義されています。また、アルファベットの大文字/小文字を変換して返す関数も定義されています。

全角文字/半角文字を変換する mb_convert_kana()

mb_convert_kana()は、第1引数で渡された文字列内の全角文字/半角文字を変換します。第2引数では、変換オプションを指定しますが、各変換オプションは組み合わせて使用することができます。第3引数で文字コードを指定することができますが、省略した場合はmbstring.internal_encodingの値が使用されます。

PHP

<?php
$str1 = 'ABC123ABC123';

// r:全角英字を半角英字に変換
echo mb_convert_kana($str1, 'r'); // 出力:ABC123ABC123

// R:半角英字を全角英字に変換
echo mb_convert_kana($str1, 'R'); // 出力:ABC123ABC123

// n:全角数字を半角数字に変換
echo mb_convert_kana($str1, 'n'); // 出力:ABC123ABC123

// N:半角数字を全角数字に変換
echo mb_convert_kana($str1, 'N'); // 出力:ABC123ABC123

// a:全角英数字を半角英数字に変換
echo mb_convert_kana($str1, 'a'); // 出力:ABC123ABC123

// A:半角英数字を全角英数字に変換
echo mb_convert_kana($str1, 'A'); // 出力:ABC123ABC123

$str2 = 'ABC 123ABC 123';

// s:全角スペースを半角スペースに変換
echo mb_convert_kana($str2, 's'); // 出力:ABC 123ABC 123

// S:半角スペースを全角スペースに変換
echo mb_convert_kana($str2, 'S'); // 出力:ABC 123ABC 123

$str3 = 'アイウエオあいうえおアイウエオ';

// k:全角カタカナを半角カタカナに変換
echo mb_convert_kana($str3, 'k'); // 出力:アイウエオあいうえおアイウエオ

// K:半角カタカナを全角カタカナに変換
echo mb_convert_kana($str3, 'K'); // 出力:アイウエオあいうえおアイウエオ

// h:全角ひらがなを半角カタカナに変換
echo mb_convert_kana($str3, 'h'); // 出力:アイウエオアイウエオアイウエオ

// H:半角カタカナを全角ひらがなに変換
echo mb_convert_kana($str3, 'H'); // 出力:アイウエオあいうえおあいうえお

// c:全角カタカナを全角ひらがなに変換
echo mb_convert_kana($str3, 'c'); // 出力:あいうえおあいうえおアイウエオ

// C:全角ひらがなを全角カタカナに変換
echo mb_convert_kana($str3, 'C'); // 出力:アイウエオアイウエオアイウエオ

$str4 = 'ガギグゲゴ';

// V:濁点付きの文字を一文字に変換(K, Hと共に使用)
echo mb_convert_kana($str4, 'VK'); // 出力:ガギグゲゴ
?>

アルファベットの大文字/小文字を変換する関数

PHPには、引数で渡された文字列内のアルファベットの大文字/小文字を変換して返す関数も定義されています。

PHP

<?php
// すべての文字を小文字に変換
echo strtolower('Hello World.'), PHP_EOL; // 出力:hello world.
// すべての文字を大文字に変換
echo strtoupper('Hello World.'), PHP_EOL; // 出力:HELLO WORLD.

// すべての文字を小文字に変換(マルチバイト文字対応)
echo mb_strtolower('Hello World.'), PHP_EOL; // 出力:hello world.
// すべての文字を大文字に変換(マルチバイト文字対応)
echo mb_strtoupper('Hello World.'), PHP_EOL; // 出力:HELLO WORLD.

// 1文字目を小文字に変換
echo lcfirst('Hello World.'), PHP_EOL; // 出力:hello World.
// 1文字目を大文字に変換
echo ucfirst('hello world.'), PHP_EOL; // 出力:Hello world.

// 半角スペースで区切られた単語の1文字目を大文字に変換
echo ucwords('hello world.'), PHP_EOL; // 出力:Hello World.
?>