php集成函数表单邮件验证不起作用过滤器\u验证\u电子邮件

php集成函数表单邮件验证不起作用过滤器\u验证\u电子邮件,php,Php,我有下面的脚本来检查电子邮件,如果它们的格式正确,我会对它们进行处理。。我正在为此使用FILTER_VALIDATE_电子邮件 代码如下: if(!empty($_POST['maillist'])){ $_POST['maillist'] = 'mariatettamanti@gmail.com, H0889@sofiaertel.com,sdfd@sfs.com,'; $mails = explode(',',$_POST['maillist']); foreach($m

我有下面的脚本来检查电子邮件,如果它们的格式正确,我会对它们进行处理。。我正在为此使用FILTER_VALIDATE_电子邮件 代码如下:

if(!empty($_POST['maillist'])){
    $_POST['maillist'] = 'mariatettamanti@gmail.com,
H0889@sofiaertel.com,sdfd@sfs.com,';    

$mails = explode(',',$_POST['maillist']);

foreach($mails as $mail){
if(!filter_var($mail, FILTER_VALIDATE_EMAIL)) {
 echo $emailErr = $mail." - Invalid email format<br />"; 
}else{
echo 'do job with this mail';
}

}
}

正如您所看到的,邮件被格式化为邮件,但该函数仅打印第一封邮件为正确邮件,其余邮件为错误邮件。。为什么呢?我错过了什么?谢谢

问题在于您的电子邮件地址中的最后一个逗号。它会在最后创建并清空值。要避免这种情况,请使用isset


问题是您的电子邮件地址中的最后一个逗号。它会在最后创建并清空值。要避免这种情况,请使用isset


看这里看这里看这里Saty,奇怪,以3封邮件为例,它是有效的,但对于我的真实邮件列表,它不是。。我开始循环..你能把$u post['maillist']的值贴出来吗!!我添加了我正在测试的样本。。它包含错误和正确的格式化邮件。您测试过吗?如果需要,请选中“编辑”“使用修剪”!filter\u vartrim$mail,filter\u VALIDATE\u EMAIL{它会给你想要的结果。Saty,奇怪,以3封邮件为例,它可以工作,但在我的真实邮件列表中它不工作..我开始循环..你能发布$\u post['maillist'的值吗!!我添加了我正在测试的样本..它包含错误和正确的格式邮件。你测试了吗?检查编辑使用修剪如果!filter_vartrim$mail,filter_VALIDATE_EMAIL{它会给你想要的结果。
if (!empty($_POST['maillist'])) {
    $_POST['maillist'] = 'H0889@sofisadatel.com,info@daddsadyomiaasdmi.com,info@hotsdaelmidasami.com,';
    $mails = explode(',', $_POST['maillist']);

    foreach ($mails as $mail) {
        if (isset($mail) && $mail != "") {// check for empty email
           if(!filter_var(trim($mail), FILTER_VALIDATE_EMAIL)) {
                echo $emailErr = $mail . " - Invalid email format<br />";
            } else {
                echo 'do job with this mail';
            }
        }
    }
}