Ich verwende PHP Version 5.3.10. Hier ist der Code:
<?php $email = "test@example.c"; if (filter_var($email, FILTER_VALIDATE_EMAIL)) echo "Email: ".$email." correct"; else echo "email not correct"; ?>
Es wird zurückgegeben: „E-Mail: test@example.c ist korrekt.
Ich denke, eine Top-Level-Domain mit nur einem Zeichen ist falsch (laut dieser Liste: http://data.iana.org/TLD/tlds-alpha -by -domain.txt, ich wusste nicht, dass es eine zeichenlange Top-Level-Domain gibt)
.Funktioniert der Filter FILTER_VALIDATE_EMAIL ordnungsgemäß?
FILTER_VALIDATE_EMAIL不支持PHP 5.2.14
验证电子邮件地址有点复杂。看一下这个列表:
有效的电子邮件地址
无效的电子邮件地址
Source http://en.wikipedia.org/wiki/Email_address
大多数所有的电子邮件验证实现都是“bug”,但php实现可以很好地使用,因为它接受所有常见的电子邮件地址
更新:
Found on http://www.php.net/manual/en/filter.filters.validate.php
关于没有的“部分”地址。在域部分,源代码中的一条注释(在ext/filter/logical_filters.c中)证明了这种拒绝:
这里是Michael Rushton的类链接(链接已断,请参阅下面的源代码),它支持RFC 5321/5322