見出し画像

PHP 全角を半角で取得する方法

こんばんは!
今回は、全角を半角で取得する方法についてまとめて見たいとおもいます!
フォームなどで、全角で入力した際に、エラーで半角で入力してくださいなどと言った経験があるかと思います。


●全角数字を半角数字に変換する

<?php
$age = 28;

if(is_numeric($age)){
   echo $age . '歳です!';
}else{
   echo '※数字で入力してください!';
}

?>

上の状態で、is_numericはPHPで数字か判断するときに使用されます。
しかしもし全角で数字が入力されていた場合は数字で判断されることなはいです。そのため、$ageという変数に以下のように設定します。

<?php
$age = 23;

$age = mb_convert_kana($age, 'n');
if(is_numeric($age)){
   echo $age . '歳です!';
}else{
   echo '※数字で入力してください!';
}

?>

mb_convert_kana($a, b);
$a (該当する変数名)
b(オプション)

このmb_convert_kanaというリファレンスは全角を半角に自動で変換してくれる機能を持っています。

今回は全角数字を半角数字に変換するので、
オプションのnを使用します。

その結果、仮に全角を入力しても半角に変換されます!

<?php
$age = '23';

$age = mb_convert_kana($age, 'n');
if(is_numeric($age)){
   echo $age . '歳です!';
}else{
   echo '※数字で入力してください!';
}

?>

スクリーンショット 2022-05-19 0.59.29


●「全角カタカナ」を「半角カタカナ」に変換

同じような感じで、オプションを使い分ければ、数字以外も変換することが可能です!

<?php
$kana = 'タナカ';

$kana = mb_convert_kana($kana, 'k');
if(preg_match("/^[ヲ-゚ー ]+$/u",$kana)){
   echo '名前は' . $kana . 'です!';
}else{
   echo '※半角カタカナで入力してください!';
}

?>

「全角カタカナ」を「半角カタカナ」に変換する場合は、
オプションで小文字のkを使用します。
また、半角のカタカナかを判断するときは、
if(preg_match("/^[ヲ-゚ー ]+$/u",$変数名)){

}
を使用します。
preg_matchに関しては、PHP 正規表現として検索すれば出てきます!

スクリーンショット 2022-05-19 2.56.45

無事に全角から半角に変換されました!

大阪在住の29歳。web制作会社勤務。noteを通してたくさんの出会いを作っていきたいです。台湾が大好きで中国語勉強中。日台夫婦。日々の挑戦の記録や、社会の生きづらさ、台湾のことなどを書いていこうと思います。2023年台湾に移住予定です。