在 PHP 中驗證電子郵件

WBOY
發布: 2024-02-28 10:34:01
轉載
381 人瀏覽過

在PHP中驗證電子郵件是網站開發中常見的需求之一。有效的電子郵件驗證可以提高使用者輸入準確性,防止惡意註冊和資訊外洩。本文將介紹如何使用PHP編寫簡單且有效的電子郵件驗證程式碼,以確保使用者輸入的電子郵件格式符合規格。透過本文的指導,您可以輕鬆實現電子郵件驗證功能,提升網站的使用者體驗和安全性。 php小編蘋果將為您詳細解讀驗證電子郵件的方法,讓您輕鬆掌握技巧。

我們還將示範另一種使用FILTER_SANITIZE_EMAILFILTER_VALIDATE_EMAIL篩選器名稱ID 以及fiter_var()函數在php中驗證電子郵件地址的方法。此方法首先清理電子郵件地址,然後驗證電子郵件地址。

我們將介紹另一種使用正規表示式在 PHP 中驗證電子郵件的方法。此方法使用preg_match()函數根據提供的正規表示式檢查電子郵件是否有效。


在 PHP 中使用filter_var()函數和FILTER_VALIDATE_EMAIL驗證電子郵件

我們可以使用filter_var()函數來過濾具有特定過濾器名稱的變數。FILTER_VALIDATE_EMAIL篩選器名稱指定電子郵件需要驗證。此函數將電子郵件地址作為字串作為第一個參數,將上面指定的過濾器 ID 作為第二個參數。因此,我們可以檢查提供的電子郵件是否有效。如果函數成功或傳回 false,則函數傳回過濾後的資料。電子郵件被稱為有效,而不是電子郵件存在的意義。過濾器 id 根據 RFC 822 中的語法驗證電子郵件。我們可以使用有效且無效的電子郵件來測試電子郵件的驗證。

例如,建立一個函數validateEmail(),它接受一個參數$email。對$email變數使用filter_var()函數,並指定篩選器 IDFILTER_VALIDATE_EMAIL作為第二個參數。對filter_var()函數套用if-else條件。在if區塊中,顯示訊息說電子郵件有效,在else條件下,顯示該電子郵件無效。在函數外,呼叫該函數兩次。在第一個函數呼叫中提供參數,peter.piper@iana.orgfirst.last@example.123
在第二次通話中。

我們可以假設範例中提供的電子郵件地址是使用$_POST變數從表單存取的。下面範例中的函數被呼叫兩次。第一個呼叫傳遞一個有效的電子郵件地址,第二個地址傳遞一個無效的電子郵件。第二個電子郵件地址無效,因為它包含頂級網域中的數字。結果是顯而易見的。

範例程式碼:

 #php 7.x php function validateEmail($email) { if(filter_var($email, FILTER_VALIDATE_EMAIL)) { echo "{$email}: A valid email"."
"
;
} else { echo "{$email}: Not a valid email"."
"
;
} } validateEmail('peter.piper@iana.org'); validateEmail('first.last@example.123'); ?>
登入後複製

輸出:

 phppeter.piper@iana.org: A valid email first.last@example.123:Not a valid email 
登入後複製

在 PHP 中使用FILTER_VALIDATE_EMAILFILTER_SANITIZE_EMAILfilter_var()函數驗證電子郵件

我們可以在第一種方法中使用附加的FILTER_SANITIZE_EMAIL過濾器名稱 id 從電子郵件地址中刪除所有非法字元。過濾器名稱 id 是filter_var()函數中的第二個參數,其中電子郵件地址是第一個參數。此函數傳回經過消毒的電子郵件。我們可以再次使用該功能來檢查消毒後電子郵件地址的有效性。為此,我們可以使用FILTER_VALIDATE_EMAIL篩選器名稱 id 來遵循第一種方法。

例如,建立一個變數$email並儲存一個包含非法字元的電子郵件地址。將電子郵件ram(.mugu)@exa//mple.org作為字串儲存在變數中。對變數使用filter_var()函數,並使用FILTER_SANITIZE_EMAILid 作為第二個參數。將函數儲存在同一個$email變數中。然後,像第一種方法一樣套用if-else語句。這次,使用FILTER_VALIDATE_EMAIL電子郵件作為函數中的篩選器名稱。同樣,顯示訊息。

在下面的範例中採用了帶有非法字元的電子郵件地址,filter_var()函數過濾這些字元並清理所提供的電子郵件。範例中提供的電子郵件地址包含非法字符,例如()//。該函數首先從電子郵件中刪除這些字符,然後驗證電子郵件。

範例程式碼:

 #php 7.x php $email = "ram(.mugu)@exa//mple.org"; $email = filter_var($email, FILTER_SANITIZE_EMAIL); if(filter_var($email, FILTER_VALIDATE_EMAIL)) { echo "{$email}: A valid email"."
"
;
} else{ echo "{$email}:Not a valid email"."
"
;
} ?>
登入後複製

輸出:

 ram.mugu@example.org: A valid email 
登入後複製

使用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变量。

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

示例代码:

 # php 7.x php $email_first = 'firstlast11@gmail.com'; $email_second ='firstlast@11gmail,com'; function validateEmail($email) { $regex = "/^([a-zA-Z0-9\.]+@+[a-zA-Z]+(\.)+[a-zA-Z]{2,3})$/"; echo preg_match($regex, $email) ? "The email is valid"."
"
:"The email is not valid";
} validateEmail($email_first); validateEmail($email_second); ?>
登入後複製

输出:

 The email is valid The email is not valid 
登入後複製

以上是在 PHP 中驗證電子郵件的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:lsjlt.com
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板
關於我們 免責聲明 Sitemap
PHP中文網:公益線上PHP培訓,幫助PHP學習者快速成長!