Получить содержимое определенного HTML тэга в строке на PHP?

Вопрос: как получить "Содержимое" из HTML тэга <div class="test"> в переменной PHP:

$str = '<HTML><h1>Заголовок</h1><div class="test">Содержимое</div><div></div></HTML>';

Чем проще решение тем лучше. Вариант с "посимвольной" обрезкой - не вариант, т.к. вырезка происходит с HTML страницы, где неизвестно где какой символ по счету


Ответы (1 шт):

Автор решения: Uranus

Можно воспользоваться библиотекой DOMDocument.

$str = '<HTML><h1>Заголовок</h1><div class="test">Содержимое</div><div></div></HTML>';

$dom = new DOMDocument();
@$dom->loadHTML($str);  // @ подавляет предупреждения, если HTML не полностью корректный

$xpath = new DOMXPath($dom);
$elements = $xpath->query('//div[@class="test"]');

$content = null;
if ($elements->length > 0) {
    $content = $elements->item(0)->nodeValue;
}
→ Ссылка