TShopping

 找回密碼
 註冊
搜索
查看: 2728|回復: 3

[教學] PHP 符合 RFC 規範的 Email 驗證程式

[複製鏈接]
發表於 2014-5-27 18:22:44 | 顯示全部樓層 |閱讀模式
 
Push to Facebook

要驗證 Email 是否符合規格, 大部分是使用下面的簡單 Regular expression 來作驗證 (下面兩者 regex 是一樣的, 只是 php / rails 版的寫法而已)

  • preg_match('/^([^@\s]+)@((?:[-a-z0-9]+\.)+[a-z]{2,})$/', $email) // 正確: true, 錯誤: false
  • validates_format_of :email, :with => /^([^@\s]+)@((?:[-a-z0-9]+\.)+[a-z]{2,})$/i, :message => '格式錯誤'

使用上述的檢查後, 再加上 PHP 驗證 Email -檢查 DNS 的 MX 是否有通, 再來就該直接寄信去驗證了.


在前面那段 regex 的驗證, Dominic Sayers 把 RFC 1123, 2396, 3696, 4291, 4343, 5321 &5322 看完, 寫出下面的 PHP function, 此 function 也有附上 unit test 的測試資料, 是我看過最複雜的檢查了. XD

轉載此 Function: (Source: RFC-compliant email address validator)

描述: A PHP function that validates all parts of a given email address, according to RFCs 1123, 2396, 3696, 4291, 4343, 5321 & 5322. I’ve released it under a license that allows you to use it royalty-free in commercial or non-commercial work, subject to a few conditions. It’s almost certainly the first email address validator that correctly lets you put an IPv6 address in for the domain part.





 

臉書網友討論
發表於 2014-9-7 20:53:27 | 顯示全部樓層
强烈感谢楼主











bjcars.net

版主招募中

發表於 2014-11-25 08:40:34 | 顯示全部樓層


  先支持了再说


發表於 2015-10-28 21:54:43 | 顯示全部樓層
支持楼主,辛苦了


*滑块验证:
您需要登錄後才可以回帖 登錄 | 註冊 |

本版積分規則



Archiver|手機版|小黑屋|免責聲明|TShopping

GMT+8, 2024-4-17 04:04 , Processed in 0.067423 second(s), 23 queries .

本論壇言論純屬發表者個人意見,與 TShopping綜合論壇 立場無關 如有意見侵犯了您的權益 請寫信聯絡我們。

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回復 返回頂部 返回列表