-2 голоса
 
586 просмотров
27.08.2019 / 14:17  Nolosha

Не получается отфильтрировать код от тега script

Моя цель такова: отфильтрировать html код от тегов script в php. Вот что я написала:
  1. $d = new DOMDocument;
  2. $d->loadHTML($html);
  3. $script = $d->getElementsByTagName("script");
  4. foreach($script as $i){
  5. $i->parentNode->removeChild($i);
  6. }
  7. $doneHTML = $d->saveHTML();

Но в итоге, код остается без изменений. Теги script и их контент не удалились из кода.
Прошу объяснить в чем проблема.
Изм. Nolosha от 27.08.2019 / 14:23
Ответы
 
1 голос
 
# 28.08.2019 / 17:36  vlavolk
Суть здесь в том, что $d->getElementsByTagName("script"); возвращает элемент DOMNodeList, который нельзя итерировать в циклах. Потому необходимо пользоваться методом DOMNodeList::item который возвращает искомый элемент по индексу.

Вот решение
Открыть спойлер
Здесь посмотреть
  https://ideone.com/NmSGWD
Изм. vlavolk от 28.08.2019 / 17:37
 
0 голосов
 
# 28.08.2019 / 18:17  MasterOS
Хватит либо всем бан
*- кажется я получил бан :)
28.08.2019 / 20:17  Витаминыч
Таки да
Всего: 2

Реклама

Мы в соцсетях

tw tg yt gt