strip_tags () función lista negra en lugar de lista blanca

Recientemente descubrí la función strip_tags() que toma una cadena y una lista de tags html aceptadas como parámetros.

Digamos que quería deshacerme de las imágenes en una cadena. Aquí hay un ejemplo:

 $html = ''; $html = '

This should be bold

'; $html .= '

This is awesome

'; $html .= 'This should be bold'; echo strip_tags($html,"

");

devuelve esto:

 

This should be bold

This is awesome

This should be bold

en consecuencia, me deshice de mi formateo a través de y quizás en el futuro.

Quiero una forma de lista negra en lugar de incluir en la lista blanca algo como:

 echo blacklist_tags($html,""); 

regresando

 

This should be bold

This is awesome

This should be bold

¿Hay alguna manera de hacer esto?

Si solo desea eliminar las tags , puede usar DOMDocument lugar de strip_tags() .

 $dom = new DOMDocument(); $dom->loadHTML($your_html_string); // Find all the  tags $imgs = $dom->getElementsByTagName("img"); // And remove them $imgs_remove = array(); foreach ($imgs as $img) { $imgs_remove[] = $img; } foreach ($imgs_remove as $i) { $i->parentNode->removeChild($i); } $output = $dom->saveHTML(); 

Solo puede hacer esto escribiendo una función personalizada. Strip_tags () se considera más seguro, porque es posible que se olvide de poner en lista negra algunas tags …

PD: Algunas funciones de ejemplo se pueden encontrar en los comentarios en la página strip_tags () de php.net