Вы не можете выполнять поиск нескольких атрибутов с помощью простого HTML DOM Parser.Возможно, это слишком просто?Если вы используете встроенный синтаксический анализатор DOM, это работает нормально, хотя и требует некоторого знакомства с XPath:
<?php
$results = '<div class="collection__list" data-type="Other1">DIV1</div><div class="collection__list" data-type="Other2">DIV2</div>';
$dom = new DomDocument();
$dom->loadHTML($results, LIBXML_HTML_NODEFDTD | LIBXML_HTML_NOIMPLIED);
$xpath = new DomXpath($dom);
$nodes = $xpath->query("//div[@class='collection__list' and @data-type='Other1']/text()");
foreach ($nodes as $node) {
echo $node->nodeValue;
}
Я полагаю, можно было бы выполнить поиск по циклу, но на самом деле использование встроенных функцийбудет более надежным и стандартизированным решением или, по крайней мере, использовать современное решение.Эта «библиотека» действительно является пережитком прошлого и не соответствует никаким современным практикам программирования.
<?php
$results = '<div class="collection__list" data-type="Other1">DIV1</div><div class="collection__list" data-type="Other2">DIV2</div>';
$html = str_get_html($results);
foreach ($html->find('div[class=collection__list]') as $article) {
if ($article->attr["data-type"] === "Other1") {
echo $article;
break;
}
}