« PHP:文字列が半角数字のみかチェック | メイン | PHP:多次元配列の扱い方 »
2005年09月07日
PHP:E-mailアドレスをチェック
■簡易的なE-mailアドレスチェック
if(ereg('^[-!#$%&\'*+\\./0-9=?A-Z^_`a-z{|}~]+
'.'@'.'[-!#$%&\'*+\\/0-9=?A-Z^_`a-z{|}~]+
\.'.'[-!#$%&\'*+\\./0-9=?A-Z^_`a-z{|}~]+$', $email)){
print "メールアドレスの可能性がある";
}else{
print "メールアドレスではない";
}
■E-mailアドレスをより正確にチェックしたい場合には、以下のように行います。
まずユーザー定義関数email_checkを定義し、E-mailアドレスを引数として関数email_checkを実行します。
function email_check($email){
if(preg_match('/^(?:[^(\040)<>@,;:".\\\\\[\]\000-\037\x80-\xff]
+(?![^(\040)<>@,;:".\\\\\[\]\000-\037\x80-\xff])|"[^\\\\\x80-\x
ff\n\015"]*(?:\\\\[^\x80-\xff][^\\\\\x80-\xff\n\015"]*)*")(?:\.(
?:[^(\040)<>@,;:".\\\\\[\]\000-\037\x80-\xff]+(?![^(\040)<>@,;:
".\\\\\[\]\000-\037\x80-\xff])|"[^\\\\\x80-\xff\n\015"]*(?:\\\\[
^\x80-\xff][^\\\\\x80-\xff\n\015"]*)*"))*@(?:[^(\040)<>@,;:".\\\
\\[\]\000-\037\x80-\xff]+(?![^(\040)<>@,;:".\\\\\[\]\000-\037\x
80-\xff])|\[(?:[^\\\\\x80-\xff\n\015\[\]]|\\\\[^\x80-\xff])*\])
(?:\.(?:[^(\040)<>@,;:".\\\\\[\]\000-\037\x80-\xff]+(?![^(\040)
<>@,;:".\\\\\[\]\000-\037\x80-\xff])|\[(?:[^\\\\\x80-\xff\n\015
\[\]]|\\\\[^\x80-\xff])*\]))*$/',
$email)){
return 1;
}
}
if(email_check($str)){
print "メールアドレスの可能性がある";
}else{
print "メールアドレスではない";
}
投稿者 wing : 2005年09月07日 22:54