Удаление элемента в simple_html_dom

1 Звезда2 Звезды3 Звезды4 Звезды5 Звезд (Пока оценок нет)
Загрузка...

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

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *