JSFiddle - React, Tailwind, and code Playground
JavaScript
include('simple_html_dom.php');
$html = new simple_html_dom();
$html->load('<html><body> <div class=primer><h1>Primer</h1>
<p class="oposit part1 part2">Заметка</p>
<div class="halfM indPar">Текст, который мне не нужен</div>
<div class="halfM indPar">Текст, который мне также не нужен</div>
<p class="oposit part1 part2">Наименования</p>
<div class="halfM indPar">Текст, который мне не нужен</div>
<div class="halfM indPar">Текст, который мне также не нужен</div>
<p class="oposit part1 part2">Примечание</p>
<div class="halfM indPar">Текст нужен</div>
<div class="halfM indPar">Текст нужен</div>
<div class="halfM indPar">А вот этот уже нет, так как он третий</div>
<p class="oposit part1 part2">История</p>
<div class="halfM indPar">Текст, который мне не нужен</div>
<div class="halfM indPar">Текст, который мне также не нужен</div>
<p class="oposit part1 part2">Примечание</p>
<div class="halfM indPar">Текст нужен 2222</div>
<div class="halfM indPar">Текст нужен 22222<div class"pribluda">Приблудный текст, который не нужен</div></div>
<p class="oposit part1 part2">Примечание</p>
<div class="halfM indPar">Текст нужен 33333</div>
<div class="halfM indPar">Текст нужен 33333</div>
</div></body></html>');
$hrefText = $html->find('div.primer');
foreach($hrefText as $article) {
$ret = $html->find('p[class=oposit part1 part2]');
foreach ($ret as $element) {
if ($element->plaintext == 'Примечание') {
$next = $element;
while (($next = $next->next_sibling()) && $next->class == 'halfM indPar') {
$el[] = array(trim($next->plaintext));
$result = count($el);
echo $result;
if($el == 2) break;
}
continue;
}
}
$item['shortname'] = trim($article->find('h1', 0)->plaintext);
$item['old_shortname'] = $el[1][0];
$item['old_fullname'] = $el[0][0];
$kiska[] = $item;
}
print_r($kiska);
$html->clear();
unset($html);