Я пытаюсь разобрать почтовый менеджер, но я не могу найти, как получить часть из заголовка, у которого есть символ новой строки после точки с запятой.php preg_match значение или точка с запятой до новой строки
Пример:
Content-Type: multipart/related;
type="multipart/alternative";
boundary="----_=_NextPart_002_01CF36FC.6259F03C"
Я разборе это с помощью следующих регулярных выражений в preg_match_all:
/(?P<keyname>.*):(\s*)?(?<value>(?:(?!;).)+)((\s*)?;([\s\\r\\n\\t]*)?(?<sub_value>.*)))?/i
Но это не дает мне пограничную линию внутри sub_value. Я попытался также с
(?<sub_value>(.+|;[\s\\r\\n\\t]*))
вместо
(?<sub_value>.*)
но это ничего не меняет.
.+|;[\s\\r\\n\\t]*<br>
как и во всех символов, или точку с запятой с новой строки/вкладки после него
Заранее спасибо!
Edit: Когда я использую
(?<sub_value>([\w_.=\"\/\-;\s\\r\\n\\t]*))
Я получаю граничную часть тоже, но это становится все больше, чем это должно быть, и все символы включены, которые могут присутствовать в mailboundary? Кроме того, он ловит новую строку без точки с запятой.
Как вы хотите массив ссылок выглядеть? Другими словами, что именно вы хотите захватить? –
Собственно, Content-Type попадет в «keyname», а значение после: получит значение «value». Все остальные аргументы, которые находятся после точки с запятой в sub_value, которая будет проанализирована позже в коде. Но если есть другое ключевое слово или как вы можете его назвать, ему нужно попасть в другой подмассив (он будет иметь другой ключ в массиве результатов). Хорошая matcharray будет выглядеть так: [keyname] => Array [0] => Content-Type [value] => Array [0] => multipart/related [sub_value] => Array [0] = > type = "multipart/alternative"; \t border = "----_ = _ NextPart_002_01CF36FC.6259F03C" – Marbug