今回使うファンクションはmb_convert_kana
例えば、以下のように記述されていたとする
$age = 20; //←半角数字
if (is_numeric($age)) {
print($age . '歳');
} else {
print('※年齢が数字ではありません');
}
表示は下記の通り
20歳
is_numeric
というファンクションで、
指定されたパラメータが数値かどうかをチェックすることができる。
上記の例では($age)をチェックしている。
もし、$age = 'あいうえお'
とすると
※年齢が数字ではありません
と表示される事になる。
また、$age = '20'
ではなく$age = '20'
(全角数字)にした場合も、
同じように「※年齢が数字ではありません」と表示されてしまう。
ユーザーが上記のように、半角で入力しなければいけない場合でも、
誤って全角で入力してしまうことが多々ある。
なので、仮に全角数字を入力してしまっても、半角数字に直してくれるよう記述すれば良い。
そこで使うのが冒頭でも述べた通りmb_convert_kana
というファンクション
先にコードを書いてしまうと以下の通り。
$age = 20; //←全角数字
$age = mb_convert_kana($age, 'n', 'UTF-8');
if (is_numeric($age)) {
print($age . '歳');
} else {
print('※年齢が数字ではありません');
}
20と全角数字で入力されているにも関わらず、以下のように表示されます。
20歳
mb_convert_kana
について説明
mb → マルチバイトの略で、日本語など全角を扱う時に使われる言葉
convert_kana → 様々なカナを変換するファンクション
パラメータによって色々な変換ができるが、
ここでは'n'
とすることで半角数字に直すという指定ができる。
'UTF-8'
は、使っている文字コードを指定している。
上記コードでは20が全角数字だが、「'n'」のおかげで半角数字に直される。
よって、数値として認識され20歳と表示されるようになる。
以上です。お疲れ様でした。