Есть html-код вида:
"Имя: ФИО<br>
Телефон: ---<br>
E-mail: ---<br>
Cамовывоз<br>
Способ оплаты: Наличными<br>
Дополнительно: <br>это тест<br><br>
<table border=1 cellpadding=5> - и потом таблица"
Мне нужно получить из всего текста лишь "Самовывоз" (т.е. способ доставки) и "Наличными" (т.е. конкретный способ оплаты). Начал делать через DOMDocument, но не получается - лишь могу достать значения внутри парных тегов. Регуляркой не могу достать вовсе, хотя этот вариант применим, как думаю. Как это лучше сделать?
Поскольку в вашем тексте разделитель строк в целом очевиден, то можно просто разбить текст по нему с помощью explode(), либо как вариант preg_split (если вдруг могут быть как <br> так и <br/> тэги /<br\/?>/g).
После разбиения третий элемент получившегося массива будет содержать искомую строку. Так что тут варианты
$data = explode('<br>', $txt);
$shipping = $data[3];
Либо
list(,,,$shipping) = explode('<br>', $txt);
Либо для пхп 7
[,,,$shipping] = explode('<br>', $txt);
Однако, надо быть уверенным, что строки (ФИО, телефон) выше не содержат <br>, то есть вводимые данные должны экранироваться, и перед формированием данного html-кода нет вызова nl2br(), к примеру.
Сборка персонального компьютера от Artline: умный выбор для современных пользователей