У меня есть строковая переменная, которая содержит много разметки HTML, и я хочу получить из нее последний элемент <li>
.
Я использую что-то вроде:
$markup = "<body><div><li id='first'>One</li><li id='second'>Two</li><li id='third'>Three</li></div></body>";
preg_match('#<li(.*?)>(.*)</li>#ims', $markup, $matches);
$lis = "<li ".$matches[1].">".$matches[2]."</li>";
$total = explode("</li>",$lis);
$num = count($total)-2;
echo $total[$num]."</li>";
Это работает, и я печатаю последний <li>
элемент. Но я не могу понять, почему я должен вычесть последние 2 индекса массива $total
. Обычно я бы вычитал только последний индекс, так как отсчет начинается с индекса 0. Что я пропустил?
Есть ли лучший способ получить последний <li>
элемент из строки?