Met*_*lis 11 php email-validation
我刚刚设置了一个表单的验证,我决定尝试使用filter_var函数来检查我的电子邮件地址的有效性.我不知道filter_var实际上允许在哪里(因为文档很简单),我发现它允许一个像test @ test这样的电子邮件地址.在域中是否必须有.com,.net等...
Art*_*cto 18
这种行为在四月左右发生了变化.请参阅错误#49576和修订版297350.
那封电子邮件确实无效,或者至少是PHP开发人员所理解的.来源载有此通知:
/*
* The regex below is based on a regex by Michael Rushton.
* However, it is not identical. I changed it to only consider routeable
* addresses as valid. Michael's regex considers a@b a valid address
* which conflicts with section 2.3.5 of RFC 5321 which states that:
*
* Only resolvable, fully-qualified domain names (FQDNs) are permitted
* when domain names are used in SMTP. In other words, names that can
* be resolved to MX RRs or address (i.e., A or AAAA) RRs (as discussed
* in Section 5) are permitted, as are CNAME RRs whose targets can be
* resolved, in turn, to MX or address RRs. Local nicknames or
* unqualified names MUST NOT be used.
Run Code Online (Sandbox Code Playgroud)
该更新日志中提到的PHP 5.3.3和PHP 5.2.14这个Bug修正.
这是一个有效的电子邮件地址.它不会在互联网上工作(至少,不是今天),但它适用于本地地址.
我认为开发人员正在采取明智的方法来检查电子邮件地址,而不是建立自己的系统,一旦引入新的TLD,该系统就会保证过时.我们有足够的电子邮件地址语法检查程序拒绝foo@example.museum它.