我正在尝试获取已发送电子邮件的所有数据,以便将字符串放入文件和文件中。将其保存为base64。
以下是该文件的一些示例:
--089e0158c026b67091050f58bd9c--
--089e0158c026b6709a050f58bd9e
Content-Type: audio/mpeg; name="test.mp3"
Content-Disposition: attachment; filename="test.mp3"
Content-Transfer-Encoding: base64
X-Attachment-Id: f_i6agw8nv0
SUQzBAAAAAABKlRYWFgAAAAZAAADV01GU0RLTmVlZGVkADAuMC4wLjAwMDAAVFhYWAAAAB4AAANE
ZXZpY2VDb25mb3JtYW5jZVRlbXBsY
XRlAEwxAFRYWFgAAAAfAAADV01GU0RLVmVyc2lvbgAxMi4w
但是我的代码只是在使用返回字符之前获取第一行。我试图找到一种方法来获取所有返回字符一直到字符串的结尾。
这是我迄今为止尝试过的代码:
preg_match_all("/X-Attachment-Id:\s(.*)/i", $email, $matches);
我一直在寻找和寻找但已经死了。我见过有人说使用/ s&其他人使用/ e,但其中&如何申请我的搜索是我不确定的地方。
如果有人可以给我一些关于如何做这个正则表达式的建议,那将对我有所帮助! (我对正则表达式很陌生。
答案 0 :(得分:0)
您可以使用:
preg_match_all("/X-Attachment-Id:\s([^µ]*)/i", $email, $matches);
我知道它有点脏,但它有效。
Best Way将是:
preg_match_all("/X-Attachment-Id:\s(.*)/si", $email, $matches);
注意分隔符后的's',这是你正在谈论的正则表达式选项 你可以将它与'i'anothers
结合起来