【发布时间】:2026-01-18 00:35:01
【问题描述】:
从多行文本字段中,我得到了几个用换行符分隔的电子邮件地址。字段值作为 JSON 字符串存储在数据库中:
{"admin_emails":"email1@domain.com\r\nemail2@domain.com"}
然后我使用json_decode 和explode 解码电子邮件:
$emailStr = json_decode($stringFromDb)->admin_emails;
$emails = explode("\r\n", str_replace("\r", "\r\n", $emailStr) );
接下来,对于表格中的每封电子邮件,我都会检查它是否有效并做一些事情:
foreach( $emails as $email )
{
if( filter_var($email, FILTER_VALIDATE_EMAIL) ){
// do stuff with email
}
}
但我有以下问题:filter_val 仅将第一封电子邮件识别为有效的电子邮件地址。所有后续电子邮件都将被过滤掉。是什么原因导致这些电子邮件未被识别为有效的电子邮件地址?
【问题讨论】:
-
您可能希望在 $emailStr 变量上调用 explode 而不是该变量的字符串替换版本。
标签: php json validation email