Реклама

 
-2 голоса
 
131 просмотр
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  vl@volk
Суть здесь в том, что $d->getElementsByTagName("script"); возвращает элемент DOMNodeList, который нельзя итерировать в циклах. Потому необходимо пользоваться методом DOMNodeList::item который возвращает искомый элемент по индексу.

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

Мы в соцсетях

vk tw tg yt

Пожертвования

Аноним2850 р.
Freddy1700 р.
riseremi1611 р.
NaruTrey800 р.
vlavolk637 р.