Foros del Web » Programando para Internet » PHP »

Expresiones regulares

Estas en el tema de Expresiones regulares en el foro de PHP en Foros del Web. Hola amigos, Estoy realizando un formulario en PHP donde tengo un textarea con el editor tinymce, el problema viene cuando copio contenido de internet y ...
  #1 (permalink)  
Antiguo 01/09/2011, 06:22
 
Fecha de Ingreso: noviembre-2010
Ubicación: Munich - Alemania
Mensajes: 76
Antigüedad: 14 años
Puntos: 7
Expresiones regulares

Hola amigos,

Estoy realizando un formulario en PHP donde tengo un textarea con el editor tinymce, el problema viene cuando copio contenido de internet y lo pego en el editor, pues me copia el estilo y hasta algunos divs cosas como (<div style="estilo> etc), como dicha información es guardada en mysql me jode todo el diseño a la hora de visualizar el contenido, no quiero impedir que se guarde el contenido html (es de uso interno). Ahora bien, no tengo ni idea de expresiones regulares, y me gustaría poder usar la función str_replace de php pasandole un patrón para sustituir los <div> por una cadena vacia, sustituir un div no es problema haría algo como esto

$content = str_replace("<div >",' ',$content); pero no se como hacer si tengo algo como esto: <div style="float:left; margin-left: 20px; ....etc">

Me podeis hechar una mano? Gracias
  #2 (permalink)  
Antiguo 01/09/2011, 06:23
Colaborador
 
Fecha de Ingreso: octubre-2009
Ubicación: Tokyo - Japan !
Mensajes: 3.867
Antigüedad: 15 años, 1 mes
Puntos: 334
Respuesta: Expresiones regulares

has revisado la función strip_tags() ?... quizá sea lo que necesitas.

saludos

www.php.net/strip_tags
__________________
More about me...
~ @rhyudek1
~ Github
  #3 (permalink)  
Antiguo 01/09/2011, 06:31
Avatar de hasdpk  
Fecha de Ingreso: agosto-2011
Ubicación: $spain->city( 'Arucas' );
Mensajes: 1.800
Antigüedad: 13 años, 2 meses
Puntos: 297
Respuesta: Expresiones regulares

#2 dice que quiere conservar el código HTML para uso interno.

Creo que con la etiqueta de HTML <code> te valdría, pero la he usado y a mi no me funciona, de todas formas podrías usar [url=http://es2.php.net/manual/es/function.htmlspecialchars.php]htmlspecialchars[/url] que te codifica las "<" a "&lt;", por ejemplo.
  #4 (permalink)  
Antiguo 01/09/2011, 06:40
 
Fecha de Ingreso: noviembre-2010
Ubicación: Munich - Alemania
Mensajes: 76
Antigüedad: 14 años
Puntos: 7
Respuesta: Expresiones regulares

Cita:
Iniciado por Hidek1 Ver Mensaje
has revisado la función strip_tags() ?... quizá sea lo que necesitas.

saludos

[url]www.php.net/strip_tags[/url]

Gracias por tu respuesta, acabo de mirar la función y está muy bien, lo único es que podria ser a la inversa, ya que solo me interesa descartar la etiqueta <div> y la función es: strip_tags($text, tags_permitidas) como podria descartar solo dicha etiqueta?

Saludos
  #5 (permalink)  
Antiguo 01/09/2011, 06:58
 
Fecha de Ingreso: noviembre-2010
Ubicación: Munich - Alemania
Mensajes: 76
Antigüedad: 14 años
Puntos: 7
Respuesta: Expresiones regulares

Gracias por sus respuesta al final lo voy a dejar con strip_tags dejando solo las etiquetas que más útiles, no me gusta mucho la idea de tener que ir agregando etiquetas según las vaya necesitando, pero peor es nada.

Saludos
  #6 (permalink)  
Antiguo 01/09/2011, 07:03
Colaborador
 
Fecha de Ingreso: octubre-2009
Ubicación: Tokyo - Japan !
Mensajes: 3.867
Antigüedad: 15 años, 1 mes
Puntos: 334
Respuesta: Expresiones regulares

si quieres usar regex podrías usar algo asi

Código PHP:
echo preg_replace('/<\/?div.?>/i'''$texto); 
saludos.
__________________
More about me...
~ @rhyudek1
~ Github
  #7 (permalink)  
Antiguo 01/09/2011, 07:10
 
Fecha de Ingreso: noviembre-2010
Ubicación: Munich - Alemania
Mensajes: 76
Antigüedad: 14 años
Puntos: 7
Respuesta: Expresiones regulares

Cita:
Iniciado por Hidek1 Ver Mensaje
si quieres usar regex podrías usar algo asi

Código PHP:
echo preg_replace('/<\/?div.?>/i'''$texto); 
saludos.

Lo acabo de probar y solo funcionaria para las etiquetas <div></div>, pero no funciona con <div style=""><div id=""> etc. De todas manera gracias, con la primera función que me diste lo solucioné, soy nuevo en php y aún desconozco muchas funciones.

Saludos
  #8 (permalink)  
Antiguo 01/09/2011, 07:12
Colaborador
 
Fecha de Ingreso: octubre-2009
Ubicación: Tokyo - Japan !
Mensajes: 3.867
Antigüedad: 15 años, 1 mes
Puntos: 334
Respuesta: Expresiones regulares

ups... se me paso.. pone un * luego del punto

Código PHP:
echo preg_replace('/<\/?div.*?>/i'''$texto); 
ando un tanto distraído.. ahí debería funcionar a la perfección
__________________
More about me...
~ @rhyudek1
~ Github
  #9 (permalink)  
Antiguo 01/09/2011, 07:32
 
Fecha de Ingreso: noviembre-2010
Ubicación: Munich - Alemania
Mensajes: 76
Antigüedad: 14 años
Puntos: 7
Respuesta: Expresiones regulares

Cita:
Iniciado por Hidek1 Ver Mensaje
ups... se me paso.. pone un * luego del punto

Código PHP:
echo preg_replace('/<\/?div.*?>/i'''$texto); 
ando un tanto distraído.. ahí debería funcionar a la perfección
Si señor te mereces un 10 ha funcionado como bien dices, ahora ya tengo lo que quería.

Saludos
Danke

Etiquetas: expresiones, html, mysql, regulares, formulario
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 14:06.