Php Preg_match_all()获取新行

Php Preg_match_all()获取新行,php,Php,我正在尝试获取一封被删除的电子邮件的所有数据,以便将字符串放入一个文件并将其保存为base64 以下是该文件的一些示例: --089e0158c026b67091050f58bd9c-- --089e0158c026b6709a050f58bd9e Content-Type: audio/mpeg; name="test.mp3" Content-Disposition: attachment; filename="test.mp3" Content-Transfer-Encoding: bas

我正在尝试获取一封被删除的电子邮件的所有数据,以便将字符串放入一个文件并将其保存为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,但我不确定在哪里以及如何应用到我的搜索中

如果有人能给我一些关于如何做这个正则表达式的建议,这将对我有很大帮助!(我对正则表达式非常陌生。

您可以使用:

preg_match_all("/X-Attachment-Id:\s([^µ]*)/i", $email, $matches);
我知道它有点脏,但它很管用

最好的办法是:

preg_match_all("/X-Attachment-Id:\s(.*)/si", $email, $matches);
请注意分隔符后面的“s”,这是您正在讨论的正则表达式选项
您可以将它与“i”其他内容结合起来

您到底想得到什么?在您的示例中,标题的内容只是一行。哦,这很好!我仍然需要对字符串进行更多的操作才能得到纯base64内容,但您的代码做得很好!我只是错放了s的位置。谢谢!