1

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

这是我行中的 1 个示例。

"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 的名称中有一个逗号。所以如果我爆炸它也会爆炸测试。这将导致错误。

我尝试了一些正则表达式,但没有运气。谁能建议我最好的正则表达式来爆炸它们,而不是名字。

仅供参考,名称总是在“”标签中。所以逗号不是。

如果逗号引号中,我只需要传递。

4

2 回答 2

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

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

于 2012-04-10T13:49:52.980 回答
0

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

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

于 2012-04-10T13:50:26.720 回答