PHP には、メール アドレスを確認するためのさまざまな方法があります。最も一般的な方法は、自分で定期的なルールを作成することです。ただし、通常のルールは非常に面倒なので、PHP 独自の検証テスト方法を用意しています。
filter_var
filter_var は、PHP に組み込まれた変数フィルタリング メソッドで、整数、浮動小数点数、電子メール アドレス、URL、MAC アドレスなどを検証するために使用できる多くの実用的なフィルターを提供します。
filter_var が false を返す場合、変数がフィルターを通過できないことを意味し、不正であることを意味します。
出力:
asb などの不正なメール形式の場合は false が返されますが、1@a.com の場合は通過しますが、まだいくつかの欠陥があります。
ただし、一般ルールが通過すると、1@a.com は正当なメール アドレスとみなされます。では、それをより正確に確認する方法はあるのでしょうか?
checkdnsrr
checkdnsrr は、指定されたホストの DNS レコードをクエリするために実際に使用され、メールボックスが存在するかどうかを確認するために使用できます。
1@a.com の場合、MX レコードは間違いなく存在しません。
出力:
完璧であることがわかります。唯一の欠点は、結局のところ、ネットワーク要求が遅すぎることです。 したがって、この方法を使用して多数のメールボックスを同時に検証するのは適切ではありません。
filter_var+checkdnsrr
filter_var と checkdnsrr を組み合わせて検証できます。ほとんどの不正なメールボックスでは、filter_var を使用すると間違いなく失敗し、残りは再度使用できます。
checkdnsrr でさらに判断してください。
リーリー
リーリー
ただし、MX レコードをチェックしているだけであるため、163.com が存在すると判断できるだけで、ユーザー lastchiliarch が存在することを意味するわけではないことに注意してください。メールボックスの存在をより正確に確認したい場合は、SMTP サーバーに接続して確認するだけです。
電子メール検証の導入。PHP には、電子メール、URL、IP が正当であるかどうかを検証するための独自の方法が付属しています。
主なことは、
filter_var 関数を使用することです。
文法
filter_var(変数、フィルター、オプション)
変数は必須です。フィルタリングする変数を指定します。
フィルタはオプションです。使用するフィルターの ID を指定します。
options は、フラグ/オプションを含む配列を指定します。各フィルターで使用可能なフラグとオプションを確認してください。
例 #1 filter_var() の例
リーリー
上記のルーチンは次のように出力します:
上記がこの記事の全内容です。php メール検証に携わる皆様のお役に立てれば幸いです。
興味がありそうな記事: PHP+Ajax非同期通信でユーザー名とメールアドレスの登録有無の検証を実装(実現する2つの方法)
http://www.bkjia.com/PHPjc/1098286.html