由于PHP {5}中不推荐erigi()
,我需要验证电子邮件ID,因此应使用哪个函数......?请进一步提供电子邮件验证的格式,例如:
<?php
function checkEmail($email)
{
if(eregi("^[a-zA-Z0-9_]+@[a-zA-Z0-9\-]+\.[a-zA-Z0-9\-\.]+$]", $email))
{
return FALSE;
}
list($Username, $Domain) = split("@",$email);
if(getmxrr($Domain, $MXHost))
{
return TRUE;
}
else
{
if(fsockopen($Domain, 25, $errno, $errstr, 30))
{
return TRUE;
}
else
{
return FALSE;
}
}
}
?>
答案 0 :(得分:2)
对于php 5.2:http://php.net/manual/en/function.filter-var.php
$result = filter_var($email , FILTER_VALIDATE_EMAIL);
或http://pl.php.net/manual/en/function.preg-match.php或任何正则表达式。
答案 1 :(得分:2)
改为使用filter_var
PHP函数:
if (filter_var($email, FILTER_VALIDATE_EMAIL)) {
}
或者,更好的是,使用RFC-compliant email address validator.因为任何数量的正则表达式都不会包含所有可能的有效电子邮件。
答案 2 :(得分:0)
使用过滤器扩展名的示例。
<?php
function is_valid_email($email)
{
return filter_var($email, FILTER_VALIDATE_EMAIL) !== false;
}
var_dump(is_valid_email('test@example.com'));
var_dump(is_valid_email('foobar'));
var_dump(is_valid_email('test+foo@example.com.com'));
[~]> php x.php
bool(true)
bool(false)
bool(true)
然后,您可以结合已有的进一步验证。