Удалите все tags HTML, кроме разрешенных

Я видел много выражений, чтобы удалить определенный тег (или многие указанные tags), и один, чтобы удалить все, кроме одного определенного тега , но я не нашел способ удалить все, кроме многих исключенных (т.е. все, кроме p, b, i, u, a, ul, ol, li ) в PHP. Я слишком далек от регулярного выражения, поэтому мне нужна arm. 🙂 Благодаря!

strip_tags() делает именно это.

вы можете сделать это, используя функцию strip_tags

¶ strip_tags – Стриптиз HTML и PHP-тегов из строки

  strip_tags($contant,'tag you want to allow'); 

как

  strip_tags($contant,'

');

Если вам нужна гибкость, вы можете использовать решение на основе регулярных выражений и основываться на нем. strip_tags как указано выше, все равно должен быть предпочтительным.

Ниже перечислены только tags, которые вы указали (черный список):

 // tags separated by vertical bar $strip_tags = "a|strong|em"; // target html $html = 'hadf'; // Regex is loose and works for closing/opening tags across multiple lines and // is case-insensitive $clean_html = preg_replace("#< \s*\/?(".$strip_tags.")\s*[^>]*?>#im", '', $html); // prints "hadf"; echo $clean_html;