Есть такая замечательная библиотека 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>

