PHP: strip_tags — удалить только определенные теги (и их содержимое)?

Я использую функцию strip_tags(), но мне нужно удалитьнекоторые теги (и все их содержимое).

например:

<div>
  <p class="test">
    Test A
  </p>
  <span>
    Test B
  </span>
  <div>
    Test C
  </div>
</div>

Скажем, мне нужно избавиться от тегов P и SPAN и оставить только:

<div>
  <div>
    Test C
  </div>
</div>

strip_tagsожидает в качестве второго параметра теги, которые вы хотите СОХРАНИТЬ.

В этом конкретном примере я мог бы использовать striptags($html, "

"); но html, который я очищаю, и теги, которые нужно удалить, все время разные.

Я часами искал подходящую мне функцию, но ничего полезного не нашел.

Есть идеи?

9
задан Dylan 26 June 2012 в 23:36
поделиться