ホームページ > バックエンド開発 > PHPチュートリアル > PHP で電子メールを検証する

PHP で電子メールを検証する

WBOY
リリース: 2024-02-28 10:34:01
転載
475 人が閲覧しました

PHP での電子メールの検証は、Web サイト開発における一般的なニーズの 1 つです。効果的な電子メール検証により、ユーザー入力の精度が向上し、悪意のある登録や情報漏洩を防ぎます。この記事では、PHP を使用して、ユーザーが入力した電子メール形式が仕様に準拠していることを確認するためのシンプルで効果的な電子メール検証コードを作成する方法を紹介します。この記事のガイダンスを通じて、電子メール検証機能を簡単に実装し、Web サイトのユーザー エクスペリエンスとセキュリティを向上させることができます。 PHPエディターAppleがメール検証の方法を詳しく解説し、簡単にスキルを習得できます。

また、FILTER_SANITIZE_EMAIL および FILTER_VALIDATE_EMAIL フィルター名 ID と fiter_var() 関数 Address メソッドを使用して、php で電子メールを検証する別の方法も示します。 。この方法では、まず電子メール アドレスをクリーンアップしてから、電子メール アドレスを検証します。

正規表現を使用して、PHP で電子メールを検証する別の方法について説明します。このメソッドは、preg_match() 関数を使用して、指定された正規表現に基づいて電子メールが有効かどうかを確認します。


filter_var() 関数と FILTER_VALIDATE_EMAIL を使用して PHP で電子メールを検証する

filter_var() 関数を使用して、特定のフィルター名で変数をフィルター処理できます。 FILTER_VALIDATE_EMAIL フィルター名は、検証が必要な電子メールを指定します。この関数は、最初の引数として string として電子メール アドレスを受け取り、2 番目の引数として上記で指定したフィルター ID を受け取ります。したがって、提供された電子メールが有効かどうかを確認できます。関数が成功するか false を返した場合、関数はフィルター処理されたデータを返します。電子メールは有効であると言われていますが、電子メールが存在するということではありません。フィルター ID は、RFC 822 の構文に基づいて電子メールを検証します。有効な電子メールと無効な電子メールを使用して電子メールの検証を テスト できます。

たとえば、パラメータ

$email を受け入れる関数 validateEmail() を作成します。 $email 変数で filter_var() 関数を使用し、2 番目のパラメーターとしてフィルター ID FILTER_VALIDATE_EMAIL を指定します。 if-else 条件を filter_var() 関数に適用します。 if ブロックでは電子メールが有効であることを示すメッセージを表示し、else 条件では電子メールが無効であることを示します。関数の外側で、関数を 2 回呼び出します。最初の関数呼び出しで引数を指定します (peter.piper@iana.org および first.last@example.123) 2回目の電話で。

この例で指定された電子メール アドレスは、

$_POST 変数を使用してフォームからアクセスされると想定できます。以下の例の関数は 2 回呼び出されます。最初の呼び出しでは有効な電子メール アドレスが渡され、2 番目の呼び出しでは無効な電子メールが渡されます。 2 番目の電子メール アドレスは、トップレベル ドメインの番号が含まれているため無効です。結果は明らかです。

サンプルコード:

リーリー

出力:

リーリー


FILTER_VALIDATE_EMAILFILTER_SANITIZE_EMAIL、および filter_var() 関数を使用した、PHP での電子メールの検証

最初の方法で追加された

FILTER_SANITIZE_EMAIL フィルター名 ID を使用して、電子メール アドレスからすべての不正な文字を削除できます。フィルタ名 ID は、メールアドレスが最初のパラメータである filter_var() 関数の 2 番目のパラメータです。この関数は、サニタイズされた電子メールを返します。この機能を再度使用して、サニタイズされた電子メール アドレスの有効性を確認できます。このために、FILTER_VALIDATE_EMAIL フィルター名 ID を使用する最初のアプローチに従うことができます。

たとえば、変数

$email を作成し、無効な文字を含む電子メール アドレスを保存します。電子メール ram(.mugu)@exa//mple.org を文字列として変数に保存します。変数に対して filter_var() 関数を使用し、2 番目の引数として FILTER_SANITIZE_EMAIL ID を使用します。関数を同じ $email 変数に保存します。次に、最初の方法と同様に if-else ステートメントを適用します。今回は、関数内のフィルター名として FILTER_VALIDATE_EMAIL email を使用します。同様にメッセージが表示されます。

次の例では、不正な文字を含む電子メール アドレスが取得され、

filter_var() 関数によってこれらの文字がフィルタリングされ、提供された電子メールがサニタイズされます。例で指定された電子メール アドレスには、()// などの無効な文字が含まれています。この関数はまずこれらの文字を電子メールから削除し、次に電子メールを検証します。

サンプルコード:

リーリー

出力:

<code>
<code class="language-php hljs" data-lang="php"><span style="display:flex;"><span>ram<span style="color:#666">.</span>mugu<span style="color:#666">@</span>example<span style="color:#666">.</span>org<span style="color:#666">:</span> A valid email
</span></span></code></code>
ログイン後にコピー

使用 preg_match() 函数根据正则表达式验证电子邮件

我们可以使用 preg_match() 函数来验证 PHP 中的电子邮件地址。此方法使用正则表达式作为电子邮件的验证规则。我们可以自己创建正则表达式并定义有效电子邮件的规则。preg_match() 函数接受两个参数,其中第一个是正则表达式,第二个是要检查的电子邮件。我们可以使用三元运算符和函数一起检查电子邮件的有效性。

例如,创建两个变量 $email_first$email_secon,并在这些变量中存储两个电子邮件地址。首先存储有效的电子邮件 firstlast11@gmail.com,然后存储无效的电子邮件 firstlast@11gmail,com。编写一个带有一个参数的函数 validateEmail()。命名参数 $email。在函数内部,在 $regex 变量中编写一个正则表达式,如示例代码所示。然后编写一个三元运算符,其中要检查的条件是 preg_match() 函数。将 $regex 作为第一个参数,将 $email 作为第二个参数。当条件为真时打印电子邮件有效的消息,当条件为假时打印电子邮件无效的消息。回显整个三元表达式。在函数外,调用 validateEmail() 函数两次。在第一个函数调用中使用 $email_first 变量,在第二个函数调用中使用 $email_second 变量。

在下面的示例中,我们编写了一个正则表达式,用于创建验证电子邮件的规则。有效的电子邮件包含收件人姓名、@ 符号、域和顶级域。上面创建的正则表达式接受收件人姓名作为字母数字值。字母表由大写字母和小写字母组成。它也接受一个句点。电子邮件必须有 @ 符号。该域仅包含字母。然后电子邮件应该有一个句点。顶级域应该只由字母组成,并且长度应该是两个或三个。正则表达式是基于此规则创建的。第一封电子邮件是有效的,因为它满足所有规则,但第二封电子邮件无效。无效,因为域名中有数字,顶级域名前没有句号。

示例代码:

<code>
<code class="language-php hljs" data-lang="php"><span style="display:flex;"><span><span style="color:#408080;font-style:italic"># php 7.x
</span></span></span><span style="display:flex;"><span><span style="color:#666"><?</span>php
</span></span><span style="display:flex;"><span><span style="color:#19177c">$email_first</span> <span style="color:#666">=</span> <span style="color:#ba2121">&#39;firstlast11@gmail.com&#39;</span>;
</span></span><span style="display:flex;"><span><span style="color:#19177c">$email_second</span> <span style="color:#666">=</span><span style="color:#ba2121">&#39;firstlast@11gmail,com&#39;</span>;
</span></span><span style="display:flex;"><span><span style="color:#008000;font-weight:bold">function</span> <span style="color:#00f">validateEmail</span>(<span style="color:#19177c">$email</span>) {
</span></span><span style="display:flex;"><span><span style="color:#19177c">$regex</span> <span style="color:#666">=</span> <span style="color:#ba2121">"/^([a-zA-Z0-9\.]+@+[a-zA-Z]+(\.)+[a-zA-Z]{2,3})$/"</span>;
</span></span><span style="display:flex;"><span><span style="color:#008000;font-weight:bold">echo</span> preg_match(<span style="color:#19177c">$regex</span>, <span style="color:#19177c">$email</span>) <span style="color:#666">?</span> <span style="color:#ba2121">"The email is valid"</span><span style="color:#666">.</span><span style="color:#ba2121">"<br>"</span> <span style="color:#666">:</span><span style="color:#ba2121">"The email is not valid"</span>;
</span></span><span style="display:flex;"><span>}
</span></span><span style="display:flex;"><span>validateEmail(<span style="color:#19177c">$email_first</span>);
</span></span><span style="display:flex;"><span>validateEmail(<span style="color:#19177c">$email_second</span>);
</span></span><span style="display:flex;"><span><span style="color:#bc7a00">?></span><span >
</span></span></span></code></code>
ログイン後にコピー

输出:

<code>
<code class="language-text hljs" data-lang="text"><span style="display:flex;"><span>The email is valid 
</span></span><span style="display:flex;"><span>The email is not valid
</span></span></code></code>
ログイン後にコピー

以上がPHP で電子メールを検証するの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:lsjlt.com
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート