Как разобрать HTML и вернуть значение элементов в массиве в порядке появления в HTML?

Этот код использует http://querypath.org а также http://php.net/manual/en/class.domelement.php

То, что я хотел бы сделать, это получить все теги в $ types и пройти через $ html и сохранить выходные данные в массив в порядке появления этих тегов в HTML
например

.imageBlock,h1,h2,p,h5,h1,h2,p,.imageblock,h4

это порядок, который должен иметь конечный массив, как бы я это сделал?

$html = <<<html
<section>
<div class=" imageBlock" style="background: url('1.jpg');"></div>
<div>
<h1>H1 .1</h1>
<h2>H2. 1</h2>
<p>p .1</p>
</div>
<h5>Here is an H5</h5>
<div>
<h1>H1 .2</h1>
<h2>H2. 2</h2>
<p>p .2</p>
</div>
<div class="imageBlock" style="background: url('2.jpg');"></div>

<h4>Test</h4>
<section>
html;

$types = ['h1','h2','h3','h4','h5','h6','p', '.imageBlock'];

foreach($types as $type) {
//Create a varible for each tag
${"$type"} = htmlqp($html, $type);
}

foreach($types as $type) {
$types = (${"$type"}); //Easier to use varible
$nodes = []; //Array to hold elements in order of appperance not sure if in correct place?
foreach($types as $tag) {
if($types->length !== 0) {
//Show all elements
for($i = 0 ; $i< $types->length; $i++) {
echo $type;
var_dump($types->get()[$i]);
}
}
}
}?>

0

Решение

Задача ещё не решена.

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

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

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