Я хочу отображать 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>
)
Вы можете решить эту простую задачу, используя правильное инструмент для работы.
$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
)
Других решений пока нет …