Получить значения до тега <br> в переменные

149
30 января 2018, 10:59

Есть html-код вида:

"Имя: ФИО<br>
Телефон: ---<br>
E-mail: ---<br>
Cамовывоз<br>
Способ оплаты: Наличными<br>
Дополнительно: <br>это тест<br><br>
<table border=1 cellpadding=5> - и потом таблица"

Мне нужно получить из всего текста лишь "Самовывоз" (т.е. способ доставки) и "Наличными" (т.е. конкретный способ оплаты). Начал делать через DOMDocument, но не получается - лишь могу достать значения внутри парных тегов. Регуляркой не могу достать вовсе, хотя этот вариант применим, как думаю. Как это лучше сделать?

Answer 1

Поскольку в вашем тексте разделитель строк в целом очевиден, то можно просто разбить текст по нему с помощью 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(), к примеру.

READ ALSO
Импорт *.csv файла в MySQL

Импорт *.csv файла в MySQL

Ошибка: "Access denied for user

183
Лямбда-выражения и управляемый код

Лямбда-выражения и управляемый код

Имеется класс C++, написанный с применением управляемого кодаИ вот нелегкая привела меня вызвать в данном классе в одном из методов любой...

401