У меня есть следующий HTML:
<html>
<body>
bla bla bla bla
<div id="myDiv">
more text
<div id="anotherDiv">
And even more text
</div>
</div>
bla bla bla
</body>
</html>
Я хочу удалить все начинающее с <div id="anotherDiv">
до его закрытия <div>
. Как я делаю это?
$dom = new DOMDocument;
$dom->loadHTML($htmlString);
$xPath = new DOMXPath($dom);
$nodes = $xPath->query('//*[@id="anotherDiv"]');
if($nodes->item(0)) {
$nodes->item(0)->parentNode->removeChild($nodes->item(0));
}
echo $dom->saveHTML();
Для этого можно также использовать Simple HTML DOM.
Парсер HTML DOM, написанный на PHP5+, позволит вам манипулировать HTML очень простым способом! способом!
Вы можете использовать preg_replace()
как:
$string = preg_replace('/<div id="someid"[^>]+\>/i', "", $string);