一尘不染

PHP的filter_var FILTER_VALIDATE_EMAIL是否真正起作用?

php

阅读各种文章后,我决定不使用REGEX检查电子邮件是否有效,而仅使用PHP的内置filter_var函数。似乎正常,直到它开始告诉我一封电子邮件无效,因为我有一个号码。

即name@domain.com有效,而name2@domain.com无效。

我是否缺少某些东西或filter_var($email, FILTER_VALIDATE_EMAIL)真的无效?


阅读 513

收藏
2020-05-29

共1个答案

一尘不染

PHP 5.3.3过滤器代码中使用的正则表达式基于Michael Rushton的博客中有关EmailAddressValidation的博客。它似乎确实适合您提到的情况。

您还可以检查比较电子邮件地址验证正则表达式中的某些选项(PHP中当前使用的regexp是测试的那些之一)。

然后,您可以选择一个更喜欢的正则表达式,并将其用于调用中preg_match()

否则,您可以使用regexp并将其替换为文件PHP / ext / filter / logical_filter.c,function
php_filter_validate_email()并重建PHP。

2020-05-29