PHP filter_var_array() 只检查一个值是否为真?
PHP filter_var_array() only check if one value is true?
我正在尝试检查许多电子邮件地址是否正确以便发送它们。
问题是,当我用 filter_var_array()
和 FILTER_VALIDATE_EMAIL
过滤时,如果所有邮件中只有一个是正确的,它仍然继续。
这是我的代码:
$test_email_friend = explode(",", $email_friend);
if ( !filter_var_array($test_email_friend, FILTER_VALIDATE_EMAIL)) {
$errenvoi = "Please send only valid emails.";
}
else {
//message, headers etc here
if (mail($email_friend,$sujet,$message,$entete)){
$errenvoi = "Email sent !";
}
else {
$errenvoi = "Something very wrong happened, abandonship, I reapeat abandonship";
}
}
例如:如果数组包含"test@test.com"和"unvalidmess"。
无论如何都发送了,因为其中一个值是正确的。
我该如何解决这个问题?
非常感谢
如果您阅读 the docs,它表示此函数仅 returns false
失败(函数无法执行)。否则,它 returns 一个数组。所以下面的例子:
$test = array('test@test.com', 'unvalidness');
var_dump(filter_var_array($test, FILTER_VALIDATE_EMAIL));
将输出:
array(2) {
[0]=>
string(13) "test@test.com"
[1]=>
bool(false)
}
您可以通过检查失败并在返回的数组中搜索任何布尔 false
值来更改代码以使其正常工作:
$result = filter_var_array($test, FILTER_VALIDATE_EMAIL);
if (!$result || in_array(false, $result, true)) {
echo 'failed or data not valid';
}
我正在尝试检查许多电子邮件地址是否正确以便发送它们。
问题是,当我用 filter_var_array()
和 FILTER_VALIDATE_EMAIL
过滤时,如果所有邮件中只有一个是正确的,它仍然继续。
这是我的代码:
$test_email_friend = explode(",", $email_friend);
if ( !filter_var_array($test_email_friend, FILTER_VALIDATE_EMAIL)) {
$errenvoi = "Please send only valid emails.";
}
else {
//message, headers etc here
if (mail($email_friend,$sujet,$message,$entete)){
$errenvoi = "Email sent !";
}
else {
$errenvoi = "Something very wrong happened, abandonship, I reapeat abandonship";
}
}
例如:如果数组包含"test@test.com"和"unvalidmess"。 无论如何都发送了,因为其中一个值是正确的。
我该如何解决这个问题?
非常感谢
如果您阅读 the docs,它表示此函数仅 returns false
失败(函数无法执行)。否则,它 returns 一个数组。所以下面的例子:
$test = array('test@test.com', 'unvalidness');
var_dump(filter_var_array($test, FILTER_VALIDATE_EMAIL));
将输出:
array(2) {
[0]=>
string(13) "test@test.com"
[1]=>
bool(false)
}
您可以通过检查失败并在返回的数组中搜索任何布尔 false
值来更改代码以使其正常工作:
$result = filter_var_array($test, FILTER_VALIDATE_EMAIL);
if (!$result || in_array(false, $result, true)) {
echo 'failed or data not valid';
}