Я пытаюсь разделить html контент с помощью функции php preg-match-all
:
<li class="cat-item"><a title="blabla" href="#">parent 1</a>
<ul class="children">
<li class="cat-item"><a title="" href="#">child 1</a></li>
</ul>
</li>
<li class="cat-item cat-item-4"><a title="blabla" href="#">father 2</a>
<ul class="children">
<li class="cat-item"><a title="" href="#">child 1</a></li>
<li class="cat-item"><a title="bla" href="#">child 2</a></li>
</ul>
</li>
Я хочу иметь возможность изменить описание ссылки, например;
<a title="" href="#">child 1</a>
до
<a title="" href="#">I changed that</a>
при сохранении структуры исходного HTML.
до сих пор мне удалось разделить ссылки, используя:
$results = preg_match_all('/<a\s[^>]*href\s*=\s*(\"??)([^\" >]*?)\\1[^>]*>(.*)<\/a>/siU', $html, $tokens);
foreach ( $tokens[0] as $category)
{
echo $category.'<br>';
}
недостатком этого является то, что он отбрасывает дочерние списки и выводит все элементы списка на одном уровне; нет различия между родителем и ребенком.
есть идеи сохранить оригинальную иерархию?
спасибо:)