Ver Mensaje Individual
  #1 (permalink)  
Antiguo 10/07/2013, 23:33
Avatar de raulalva3
raulalva3
 
Fecha de Ingreso: julio-2005
Ubicación: San Juan - Argentina
Mensajes: 44
Antigüedad: 18 años, 9 meses
Puntos: 0
Mensaje StripTags avanzado/personalizado

Hola!!!
Otra vez, y como siempre que me trabo :/, vuelvo por estos lados que siempre me solucionan los problemas..
Esta vez, estoy tratando de hacer una especie de strip_tags avanzado o personalizado ya que el strip_tags de PHP no me sirve al todo para lo que necesito.
Este es mi ejemplo:
Código PHP:
Ver original
  1. $sting='<p style="color:black">
  2. Texto de <b>prueba</b> con una <a href="http://www.google.com" onclick="javascript()">imagen</a> en su cuerpo.
  3. <img src="imagen.jpg" width="50" height="50" class="clase" />
  4. </p>';
Resulta que hay etiquetas, de las cuales necesito conservar ciertos atributos y no elimarlas por completo. Sacar los style, class,onclick, por ejemplo.
Es decir, necesito que me quede algo como:
Código PHP:
Ver original
  1. $sting='<p>Texto de <b>prueba</b> con una <a href="http://www.google.com">imagen</a> en su cuerpo.<img src="imagen.jpg" width="50" height="50"/></p>';
Llevo una semana con este tema pero aun no lo puedo sacar y no me da para más la cabeza :S.
Mi intención en primer momento era usar expresiones regulares para esto, pero como no las se manejar bien, me pierdo en las complicaciones de lo que necesito.
En una primera instancia intenté empezar especificando como inicio un array con cada etiqueta y los atributos permitidos para cada una de la siguiente forma:
Código PHP:
Ver original
  1. $permitir = array(
  2.     'p' => '',
  3.     'a' => 'href',
  4.     'img' => 'src|width|height',
  5. )
En este caso, seria, no permitir ningún atributo para la etiqueta <p> y permitir los especificados en cada uno de los siguientes elementos (no se si me explico bien).
Pero lamentablemente, aun no puedo hacerlo funcionar y ya estoy de los pelos con este tema.
Me cansé de buscar alguien que tuviera la misma necesidad que yo, pero no encuentro por ningún lado.
Alguna sugerencia?
Saludos y de ante mano, gracias!