2015-02-18 2 views
0

Я пытаюсь получить все данные для отправленного письма, чтобы я мог поместить строки в файл & сохранить его как base64.Preg_match_all() получить новые строки PHP

Ниже приведен пример файла:

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

Что именно вы пытаетесь получить? Содержимое заголовка - это всего лишь одна строка в вашем примере. – Phylogenesis

ответ

0

Вы можете использовать:..

preg_match_all("/X-Attachment-Id:\s([^µ]*)/i", $email, $matches); 

Я знаю, что это немного грязный, но он работает

Лучший способ был бы:

preg_match_all("/X-Attachment-Id:\s(.*)/si", $email, $matches); 

Обратите внимание на «s» после того, как разделитель, то этот вариант регулярных выражений вы говорите о вы можете комбинировать его с «я» anothers

+0

О, это сработало! Мне все еще пришлось немного манипулировать строкой, чтобы получить чистый контент base64, но ваш код проделал отличную работу! Я просто неправильно разместил место для s .. СПАСИБО! –

Смежные вопросы