在我的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的名称中有逗号。所以如果我爆炸它也会爆炸测试。这将导致错误。
我尝试了一些正则表达但没有运气。任何人都可以建议我最好的正则表达式来爆炸他们而不是名字。
仅供参考,姓名始终位于“”标记中。所以逗号不是。
如果逗号在引号中,我只需要通过。
答案 0 :(得分:2)
explode('>, "', $emails);
然后添加爆炸后的字符 - 或者更好的是,使用imap_rfc822_parse_adrlist()
。
答案 1 :(得分:0)
也许您应该将数据验证到数据库中,因此某人的名字不能包含“,”(或其他符号)。
您不希望用户指示您的格式显示,您应该在需要显示时自行格式化文本