regex — php получает содержимое htm div в массиве

Я хочу отображать HTML-контент, который содержит несколько элементов div с одинаковыми именами классов и разными идентификаторами. Я хотел бы разместить содержимое в виде массива, как показано ниже:

Содержание HTML:

<div id='divcont'>
<div class='abc'>
<P class='first'>test1</p>
</div>
<div class='abc'>
<P class='first_sec'>test2</p>
</div>
</div>

Результат:

Array
(
[0] => <P class='first'>test1</p>
[1] => <P class='first_sec'>test2</p>
)

-5

Решение

Вы можете решить эту простую задачу, используя правильное инструмент для работы.

$doc = DOMDocument::loadHTML("<div id='divcont'>
<div class='abc'>
test1
</div>
<div class='abc'>
test2
</div>
</div>
");

$xpath = new DOMXPath($doc);
$nodes = $xpath->query('//div[@class="abc"]');

foreach ($nodes as $node) {
$data[] = trim($node->nodeValue);
}

print_r($data);

Выход

Array
(
[0] => test1
[1] => test2
)
3

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]