在PHP中驗證電子郵件是網站開發中常見的需求之一。有效的電子郵件驗證可以提高使用者輸入準確性,防止惡意註冊和資訊外洩。本文將介紹如何使用PHP編寫簡單且有效的電子郵件驗證程式碼,以確保使用者輸入的電子郵件格式符合規格。透過本文的指導,您可以輕鬆實現電子郵件驗證功能,提升網站的使用者體驗和安全性。 php小編蘋果將為您詳細解讀驗證電子郵件的方法,讓您輕鬆掌握技巧。
我們還將示範另一種使用FILTER_SANITIZE_EMAIL
和FILTER_VALIDATE_EMAIL
篩選器名稱ID 以及fiter_var()
函數在php中驗證電子郵件地址的方法。此方法首先清理電子郵件地址,然後驗證電子郵件地址。
我們將介紹另一種使用正規表示式在 PHP 中驗證電子郵件的方法。此方法使用preg_match()
函數根據提供的正規表示式檢查電子郵件是否有效。
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.org
和first.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
FILTER_VALIDATE_EMAIL
、FILTER_SANITIZE_EMAIL
和filter_var()
函數驗證電子郵件我們可以在第一種方法中使用附加的FILTER_SANITIZE_EMAIL
過濾器名稱 id 從電子郵件地址中刪除所有非法字元。過濾器名稱 id 是filter_var()
函數中的第二個參數,其中電子郵件地址是第一個參數。此函數傳回經過消毒的電子郵件。我們可以再次使用該功能來檢查消毒後電子郵件地址的有效性。為此,我們可以使用FILTER_VALIDATE_EMAIL
篩選器名稱 id 來遵循第一種方法。
例如,建立一個變數$email
並儲存一個包含非法字元的電子郵件地址。將電子郵件ram(.mugu)@exa//mple.org
作為字串儲存在變數中。對變數使用filter_var()
函數,並使用FILTER_SANITIZE_EMAIL
id 作為第二個參數。將函數儲存在同一個$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中文網其他相關文章!