Foros del Web » Programando para Internet » PHP »

strip_tags() + función

Estas en el tema de strip_tags() + función en el foro de PHP en Foros del Web. Hola, estoy usando un WYSIWYG en una web y quería que luego de ser procesado el formulario se verifique que solo se han usado los ...
  #1 (permalink)  
Antiguo 14/03/2009, 19:29
Avatar de hgp147  
Fecha de Ingreso: diciembre-2006
Ubicación: Buenos Aires, Argentina
Mensajes: 980
Antigüedad: 17 años, 4 meses
Puntos: 36
strip_tags() + función

Hola, estoy usando un WYSIWYG en una web y quería que luego de ser procesado el formulario se verifique que solo se han usado los tags HTML permitidos. Encontre una función en php.net:

Código PHP:
function removeUnsafeAttributesAndGivenTags($input$validTags ''
{
    
$regex '#\s*<(/?\w+)\s+(?:on\w+\s*=\s*(["\'\s])?.+? 
\(\1?.+?\1?\);?\1?|style=["\'].+?["\'])\s*>#is'


return 
preg_replace($regex'<${1}>',strip_tags($input$validTags)); 


Que elimina atributos inseguros.

A la función la uso así:

Código PHP:
$descripcion removeUnsafeAttributesAndGivenTags($descripcion"<span><br /><font><p><a><strong><em><u><strike><ol><li><ul><div>"); 

Pero la función elimina algunos atributos que necesito como: style. También me borra el br.

Este es el texto de entrada, tiene todos tags HTML permitidos:

Código HTML:
<span style="font-family: Comic Sans MS">a<br />
<strong>a</strong><br />
<em>a<br />
</em><u>a<br />
</u><strike>a</strike></span>
<div style="text-align: left"><span style="font-family: Comic Sans MS">a<br />
</span></div>
<div style="text-align: center"><span style="font-family: Comic Sans MS">a<br />
</span></div>
<div style="text-align: right"><span style="font-family: Comic Sans MS">a<br />
</span></div>
<div style="text-align: justify"><span style="font-family: Comic Sans MS">a<br />
</span></div>
<ol>
    <li><span style="font-family: Comic Sans MS">a</span></li>
</ol>
<ul>
    <li>a<br type="_moz" />
    <ul>
        <li>a</li>
    </ul>
    </li>
</ul>
<font color="#ff0000">a<br />
</font><span style="background-color: #ff0000">a<br />
<a href="http://a">a</a><br />
</span><br type="_moz" /> 

Y así después aplicar la función:

Código HTML:
<span>a
<strong>a</strong>
<em>a
</em><u>a
</u><strike>a</strike></span><div><span>a
</span></div><div><span>a
</span></div><div><span>a
</span></div><div><span>a
</span></div>
<ol>
    <li><span>a</span></li>
</ol>
<ul>
    <li>a
    <ul>
        <li>a</li>
    </ul>
    </li>
</ul>
<font color="#ff0000">a
</font><span>a
<a href="http://a">a</a>
</span> 
Cómo puedo hacer luego de aplicar la función que el texto obtenido sea igual al ejemplo que puse como entrada?

Gracias.
__________________
Spread Firefox | Download Day 2008
¡Únete en nuestra misión para alcanzar el Record Guinness al software más descargado en 24 horas! http://www.spreadfirefox.com/es-ES/worldrecord/
  #2 (permalink)  
Antiguo 15/03/2009, 07:36
 
Fecha de Ingreso: abril-2008
Mensajes: 435
Antigüedad: 16 años
Puntos: 10
Respuesta: strip_tags() + función

Hola
la funcion strip_tags() toma un segundo parametro opcional que son las etiquetas permitidas, de hecho la funcion que utilizas tiene un segundo parametro que se llama valid_tags, por lo tanto es ahi donde tienes que colocar las etiquetas que no quieres que se eliminen

saludos
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 23:14.