用于爆炸电子邮件接收器的PHP正则表达式

时间:2012-04-10 13:44:46

标签: php regex explode comma

在我的sql中,我有一些包含电子邮件发件人的行。发件人是字符串而不是通过列分隔。

这是我行中的一个例子。

"Test Example" <test@example.com>, "Second Person" <sperson@example.com>, third@example.com

正如你可以看到它的纯文本并准备好爆炸。我可以用逗号分解它并将它们分开。

但是今天我意识到了这个例子:

"Test, Example" <test@example.com>, "Second Person" <sperson@example.com>, third@example.com

如您所见,Test的名称中有逗号。所以如果我爆炸它也会爆炸测试。这将导致错误。

我尝试了一些正则表达但没有运气。任何人都可以建议我最好的正则表达式来爆炸他们而不是名字。

仅供参考,姓名始终位于“”标记中。所以逗号不是。

如果逗号引号中,我只需要通过。

2 个答案:

答案 0 :(得分:2)

explode('>, "', $emails);

然后添加爆炸后的字符 - 或者更好的是,使用imap_rfc822_parse_adrlist()

答案 1 :(得分:0)

也许您应该将数据验证到数据库中,因此某人的名字不能包含“,”(或其他符号)。

您不希望用户指示您的格式显示,您应该在需要显示时自行格式化文本