如何在 PHP 中验证电子邮件地址
2022-08-30 06:07:15
我有这个函数来验证电子邮件地址:
function validateEMAIL($EMAIL) {
$v = "/[a-zA-Z0-9_-.+]+@[a-zA-Z0-9-]+.[a-zA-Z]+/";
return (bool)preg_match($v, $EMAIL);
}
这是否可以检查电子邮件地址是否有效?
我有这个函数来验证电子邮件地址:
function validateEMAIL($EMAIL) {
$v = "/[a-zA-Z0-9_-.+]+@[a-zA-Z0-9-]+.[a-zA-Z]+/";
return (bool)preg_match($v, $EMAIL);
}
这是否可以检查电子邮件地址是否有效?
检查电子邮件地址格式是否正确的最简单、最安全的方法是使用 filter_var()
函数:
if (!filter_var($email, FILTER_VALIDATE_EMAIL)) {
// invalid emailaddress
}
此外,您还可以检查域是否定义了记录:MX
if (!checkdnsrr($domain, 'MX')) {
// domain is not valid
}
但这仍然不能保证邮件存在。找出答案的唯一方法是发送确认邮件。
现在您已经有了简单的答案,如果您愿意学习,请随时阅读有关电子邮件地址验证的信息,或者只是使用快速答案并继续前进。没有难受的感觉。
尝试使用正则表达式验证电子邮件地址是一项“不可能”的任务。我甚至会说你制作的正则表达式是无用的。有三个关于电子邮件地址的rfc,编写一个正则表达式来捕获错误的电子邮件地址,同时没有误报是任何人都无法做到的。查看此列表,了解 PHP 函数使用的正则表达式的测试(失败和成功)。filter_var()
即使是内置的PHP功能,电子邮件客户端或服务器也无法正确使用。在大多数情况下仍然是最佳选择。filter_var
如果您想知道PHP(当前)使用哪种正则表达式模式来验证电子邮件地址,请参阅PHP源代码。
如果您想了解有关电子邮件地址的更多信息,我建议您开始阅读规范,但我必须警告您,无论如何,这都不容易阅读:
您可以使用filter_var。
<?php
function validateEmail($email) {
return filter_var($email, FILTER_VALIDATE_EMAIL);
}
?>