LoginSignup
66
65

More than 5 years have passed since last update.

filter_var関数でメールアドレスをバリデーションする

Last updated at Posted at 2015-04-22

メールアドレスを入力させるフォームを作るときなどで、
入力されたアドレスが正しいメールアドレス(RFCに準拠しているという意味で)であるかどうかを
チェックしたい時は、正規表現を使ってチェックすることができる。

if(preg_match('/^([a-z0-9\+_\-]+)(\.[a-z0-9\+_\-]+)*@([a-z0-9\-]+\.)+[a-z]{2,6}$/iD', $mailaddress)){
     return '正しいメールアドレスです'
}else{
     return '正しくないメールアドレスです'
}

あるいは、filter_var関数を使うこともできる

if(filter_var($mailaddress, FILTER_VALIDATE_EMAIL)){
     return '正しいメールアドレスです'
}else{
     return '正しくないメールアドレスです'
}

filter_var関数でチェックできるデータは下記で確認できる。
http://www.php.net/manual/ja/filter.filters.php

filter_var関数は便利だが、チェックを柔軟にしたい場合は正規表現を使用したほうがいいかもしれない。
例えば、DoCoMoの携帯メールアドレスは2009年頃までドメインの直前にドットを入れたり、
ドットを連続して使用したりすることができた(2010年以降はできない模様)。
これはRFCに準拠しないのでfilter_var関数では弾かれてしまうが、
このようなメールアドレスを現在も使用している人は意外といたりするので、注意が必要だ。

66
65
5

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
66
65