Есть такая замечательная библиотека simple_html_dom.php, автор вроде Jose Solorzano, собственно кому и спасибо за создание этого чуда.
Так вот, с её помощью парсю странички html на ура, но в коде страниц попадаются скрипты (<script> . . .</script>), они мне как раз и не нужны, и надо их убрать с дерева DOM. Просмотрел классы в библиотеке, их там всего два, simple_html_dom_node и simple_html_dom, и там не было методов по удалению элементов.
Создание метода по удалению элементов в дереве DOM
Почесав репу, решил восполнить пробел, и добавит метод по удалению элемента.
Добавляем наш метод в класс simple_html_dom
class simple_html_dom { . . . public function remove_node($selector) { foreach ($this->find($selector) as $node) { $node->outertext = ''; } $this->load($this->save()); } . . . }
Теперь пример использования нового метода
$html_ = ' <div> <p>съешь же ещё этих мягких французских булок, да выпей чаю</p> <script>// тело скрипта</script> </div>'; $html_base = new simple_html_dom(); $html_base->load($html_); $html_base->remove_node('script'); echo $html_base->__toString();
На выходе получим
<div><p>съешь ещё этих мягких французских булок, да выпей чаю</p> </div>