Foros del Web » Programando para Internet » PHP »

Como eliminar un <Iframe> Con expresiones regulares

Estas en el tema de Como eliminar un <Iframe> Con expresiones regulares en el foro de PHP en Foros del Web. Hola amigos, he visto muchos problemas parecidos y la pregunta es la siguiente. debido a una enorme demanda de injecciones iframes en las webs, quisiera ...
  #1 (permalink)  
Antiguo 30/04/2010, 01:23
Avatar de kernelcom-com  
Fecha de Ingreso: mayo-2008
Ubicación: Lima
Mensajes: 216
Antigüedad: 15 años, 10 meses
Puntos: 3
De acuerdo Como eliminar un <Iframe> Con expresiones regulares

Hola amigos, he visto muchos problemas parecidos y la pregunta es la siguiente.

debido a una enorme demanda de injecciones iframes en las webs, quisiera poder saber como podria hacer para eliminar un iframe, es decir

Código PHP:
$cadena='texto, que digo, que ha sido jalado de una base de datos ademas puede explicar una serie de cosas <br>. Tiene saltos de lineas etc<iframe src="http://www.mivirus.com/cachito.php?id=forosdelweb" with="0" height="0" style="display:none" etc etc></iframe>';

// ahora deseo con una expresion regular sacar dicho iframe del string.

// he visto muchos ejemplos aqui algunos, pero me gustaría saber la forma que no tenga errores y que abarque todos los rangos y propiedades de un iframe.

// Todo lo deseo hacer con una funcion que actue como intermediario.

$nuevo=preg_replace("/<(\s*iframe(.*?))>(.*?)<\s*\/iframe\s*>/is"'<!-- iframe remplazado automáticamente -->'$contenido); 

$contents preg_replace("/<iframe src=\"(.*?)\" width=(\d+) height=(\d+) style=\"visibility: hidden\"><\/iframe>/"""$contents); 
Se agradecen sus aportes, saludos amigos.
__________________
Las ideas estimulan la mente.(Eric Hoffer)
http://www.reycarlos.com
http://www.clasificadosde.com
  #2 (permalink)  
Antiguo 30/04/2010, 05:55
Avatar de Adler
Colaborador
 
Fecha de Ingreso: diciembre-2006
Mensajes: 4.671
Antigüedad: 17 años, 2 meses
Puntos: 126
Respuesta: Como eliminar un <Iframe> Con expresiones regulares

Hola

La expresión sería algo como esto

Código PHP:
Ver original
  1. <?php
  2. function LimpiarTags($cadena){
  3. $cadena = trim($cadena);
  4.     if (strlen($cadena) > 0) {
  5. $patron = "/(<(\/*)iframe([^<>]*)+>)/i";
  6.  
  7. echo preg_replace($patron, " ", $cadena);
  8.  
  9.     }
  10. }
  11.  
  12. $cadalimpiar = 'texto, que digo, que ha sido jalado de una base de datos ademas puede explicar una serie de cosas <br>. Tiene saltos de lineas etc<iframe src="http://www.mivirus.com/cachito.php?id=forosdelweb" with="0" height="0" style="display:none" etc etc></iframe>';
  13.  
  14. LimpiarTags($cadalimpiar);
  15. ?>

Suerte
__________________
Los formularios se envían/validan con un botón Submit
<input type="submit" value="Enviar" style="background-color:#0B5795; font:bold 10px verdana; color:#FFF;" />
  #3 (permalink)  
Antiguo 30/04/2010, 07:30
Colaborador
 
Fecha de Ingreso: octubre-2009
Ubicación: Tokyo - Japan !
Mensajes: 3.867
Antigüedad: 14 años, 5 meses
Puntos: 334
Respuesta: Como eliminar un <Iframe> Con expresiones regulares

$patron = "/(<(\/*)iframe([^<>]*)+>)/i";

y si la cadena tiene un < o un > ?
__________________
More about me...
~ @rhyudek1
~ Github
  #4 (permalink)  
Antiguo 30/04/2010, 13:52
Avatar de Adler
Colaborador
 
Fecha de Ingreso: diciembre-2006
Mensajes: 4.671
Antigüedad: 17 años, 2 meses
Puntos: 126
Respuesta: Como eliminar un <Iframe> Con expresiones regulares

Hola

Cita:
Iniciado por Hidek1 Ver Mensaje
$patron = "/(<(\/*)iframe([^<>]*)+>)/i";

y si la cadena tiene un < o un > ?
Que ganas de complicar las cosas!!

Cita:
$patron = "/(<(?:(\/*)iframe)(.*)+>)/i";
echo preg_replace($patron, "$2", $cadena);
Suerte
__________________
Los formularios se envían/validan con un botón Submit
<input type="submit" value="Enviar" style="background-color:#0B5795; font:bold 10px verdana; color:#FFF;" />
  #5 (permalink)  
Antiguo 30/04/2010, 14:44
Colaborador
 
Fecha de Ingreso: octubre-2009
Ubicación: Tokyo - Japan !
Mensajes: 3.867
Antigüedad: 14 años, 5 meses
Puntos: 334
Respuesta: Como eliminar un <Iframe> Con expresiones regulares

Cita:
Iniciado por Adler Ver Mensaje
Hola



Que ganas de complicar las cosas!!

Suerte

awujauwja
__________________
More about me...
~ @rhyudek1
~ Github
  #6 (permalink)  
Antiguo 01/05/2010, 06:08
Avatar de kernelcom-com  
Fecha de Ingreso: mayo-2008
Ubicación: Lima
Mensajes: 216
Antigüedad: 15 años, 10 meses
Puntos: 3
Respuesta: Como eliminar un <Iframe> Con expresiones regulares

Cita:
Iniciado por Adler Ver Mensaje
Hola

La expresión sería algo como esto

Código PHP:
Ver original
  1. <?php
  2. function LimpiarTags($cadena){
  3. $cadena = trim($cadena);
  4.     if (strlen($cadena) > 0) {
  5. $patron = "/(<(\/*)iframe([^<>]*)+>)/i";
  6.  
  7. echo preg_replace($patron, " ", $cadena);
  8.  
  9.     }
  10. }
  11.  
  12. $cadalimpiar = 'texto, que digo, que ha sido jalado de una base de datos ademas puede explicar una serie de cosas <br>. Tiene saltos de lineas etc<iframe src="http://www.mivirus.com/cachito.php?id=forosdelweb" with="0" height="0" style="display:none" etc etc></iframe>';
  13.  
  14. LimpiarTags($cadalimpiar);
  15. ?>

Suerte
Muchas gracias, lo probaré y te explico los resultados ;)
__________________
Las ideas estimulan la mente.(Eric Hoffer)
http://www.reycarlos.com
http://www.clasificadosde.com

Etiquetas: eliminar, iframe, malware, virus
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 02:36.