1
0

More than 3 years have passed since last update.

[PHP]半角数字に直して、数字かどうかをチェックする

Posted at

今回使うファンクションは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歳と表示されるようになる。


以上です。お疲れ様でした。

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0