驗證電子郵件地址對於確保資料的準確性和可靠性至關重要。雖然使用正規表示式似乎是可行的選擇,但必須了解其限制。
使用正規表示式驗證電子郵件地址的挑戰
嘗試使用由於電子郵件地址語法的複雜性,正規表示式總是會遇到挑戰。提供的正規表示式無法考慮各種有效的電子郵件格式,例如包含 unicode 字元的電子郵件格式。
filter_var() 的優越性
電子郵件地址驗證的首選方法PHP 中的函數是filter_var() 函數,它採用了一組由RFC 定義的更強大的驗證規則5322、5321 和3696。此函數提供了一種可靠且高效的方法來確保電子郵件地址符合標準語法。
範例1:使用filter_var() 進行電子郵件驗證
if (!filter_var($email, FILTER_VALIDATE_EMAIL)) { // Invalid email address } else { // Valid email address }
附加檢查:MX 記錄驗證
雖然filter_var() 驗證語法,但它不保證電子郵件地址的存在。若要解決此問題,您可以使用 checkdnsrr() 函數執行 MX 記錄檢查。
範例2:驗證MX 記錄
if (!filter_var($email, FILTER_VALIDATE_EMAIL)) { // Invalid email address } else if (!checkdnsrr($domain, 'MX')) { // Domain does not define an MX record } else { // Valid email address with a valid MX record }
超越語法和MX記錄
雖然語法和MX 記錄驗證至關重要,但需要注意的是,它們仍然不能保證電子郵件地址的存在。明確確認的唯一方法是使用電子郵件驗證技術,例如確認電子郵件。
以上是如何在 PHP 中可靠地驗證電子郵件地址?的詳細內容。更多資訊請關注PHP中文網其他相關文章!