PHP内置函数确定电子邮件地址是否有效

11

可能为重复问题:
如何在PHP中验证电子邮件?

PHP是否有内置函数用于确定电子邮件地址的格式是否正确?我知道它不能检查电子邮件是否实际活动;我只是想确认电子邮件地址是否结构正确。

1个回答

39

filter_var 可以实现此功能:

$result = filter_var( 'bob@example.com', FILTER_VALIDATE_EMAIL );

验证失败时它返回false,否则返回电子邮件地址。


2
答案中的验证过程没有检查地址中是否存在点。return filter_var($email, FILTER_VALIDATE_EMAIL) && preg_match('/@.+\./', $email); - 测试域名部分中是否存在点。在最终测试之前,应该修剪电子邮件地址,我认为还需要将返回值强制转换为整数。在这里找到:electrictoolbox.com/php-email-validation-filter-var-updated。 - Istiaque Ahmed
整数强制转换只在输出目的时才是必要的。 - Istiaque Ahmed
更新2018年:这对于像Stéphane@yopmail.com这样的电子邮件无效。 - Coder anonymous
2
@Coderanonymous 你可以添加第二个标志来使其适用于Unicode:filter_var('Stéphane@yopmail.com',FILTER_VALIDATE_EMAIL,FILTER_FLAG_EMAIL_UNICODE) - Ferdinand Frank

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接