Preg_match_all()得到新行PHP

时间:2015-02-18 08:51:12

标签: php

我正在尝试获取已发送电子邮件的所有数据,以便将字符串放入文件和文件中。将其保存为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,但其中&如何申请我的搜索是我不确定的地方。

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

1 个答案:

答案 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

结合起来