Foros del Web » Programando para Internet » PHP »

[SOLUCIONADO] eliminar etiqueta img con php

Estas en el tema de eliminar etiqueta img con php en el foro de PHP en Foros del Web. Como podria eliminar la etiqueta img de un texto si existe y esta tiene un src que no sea de un determinado dominio por ejemplo ...
  #1 (permalink)  
Antiguo 19/02/2016, 08:41
 
Fecha de Ingreso: mayo-2011
Mensajes: 1.201
Antigüedad: 12 años, 11 meses
Puntos: 10
eliminar etiqueta img con php

Como podria eliminar la etiqueta img de un texto si existe y esta tiene un src que no sea de un determinado dominio por ejemplo este texto:

Código PHP:
Ver original
  1. $texto="esto es un texto de prueba <img src='otrodominio.com'> esto es otra img que se deberia eliminar <img src='dominio.com'>";


necesito eliminar imagenes que no sean del dominio.com


saludos

Última edición por pithon; 19/02/2016 a las 08:54
  #2 (permalink)  
Antiguo 19/02/2016, 09:10
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: eliminar etiqueta img con php

Podrías usar expresiones regulares, consulta sobre preg_replace() en el manual.
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #3 (permalink)  
Antiguo 19/02/2016, 09:19
 
Fecha de Ingreso: mayo-2011
Mensajes: 1.201
Antigüedad: 12 años, 11 meses
Puntos: 10
Respuesta: eliminar etiqueta img con php

Cita:
Iniciado por pateketrueke Ver Mensaje
Podrías usar expresiones regulares, consulta sobre preg_replace() en el manual.
Hola el problema es que no se hacer la expresion regular, tambien me podria valer que el src contenga una palabra en concreto si no eliminar etiqueta, necesitaria ayua con la expresion regular.
saludos
  #4 (permalink)  
Antiguo 19/02/2016, 09:21
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: eliminar etiqueta img con php

La expresión sería más o menos así:
Cita:
#<img[^<>]*dominio.com[^<>]*>#
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #5 (permalink)  
Antiguo 19/02/2016, 09:44
 
Fecha de Ingreso: mayo-2011
Mensajes: 1.201
Antigüedad: 12 años, 11 meses
Puntos: 10
Respuesta: eliminar etiqueta img con php

Cita:
Iniciado por pateketrueke Ver Mensaje
La expresión sería más o menos así:
Hola creo que eliminará las etiquetas con ese dominio pero quiero lo contrario eliminar las que no cumplan la condición, para negar como es la expresión?
Saludos
  #6 (permalink)  
Antiguo 19/02/2016, 09:52
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: eliminar etiqueta img con php

Para negar dominio.com puedes usar (?!dominio.com), te sugiero consultar una referencia de expresiones regulares.
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #7 (permalink)  
Antiguo 19/02/2016, 12:26
 
Fecha de Ingreso: mayo-2011
Mensajes: 1.201
Antigüedad: 12 años, 11 meses
Puntos: 10
Respuesta: eliminar etiqueta img con php

Probé así pero no me funciona es decir las imágenes que no tengan en el src dominio.com pero no va.

Código regexp:
Ver original
  1. #<img *(!dominio.com)*>#
  #8 (permalink)  
Antiguo 19/02/2016, 12:32
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: eliminar etiqueta img con php

Pues es que modificaste la expresión original, si no entiendes lo que hace cada parte ¿por qué lo haces?
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #9 (permalink)  
Antiguo 19/02/2016, 14:27
 
Fecha de Ingreso: mayo-2011
Mensajes: 1.201
Antigüedad: 12 años, 11 meses
Puntos: 10
Respuesta: eliminar etiqueta img con php

Cita:
Iniciado por pateketrueke Ver Mensaje
Pues es que modificaste la expresión original, si no entiendes lo que hace cada parte ¿por qué lo haces?
antes prober asi #<img[^<>]*(?!dominio.com)[^<>]*>#

pero tampoco me funciona.
saludos.
  #10 (permalink)  
Antiguo 19/02/2016, 14:54
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: eliminar etiqueta img con php

Cierto, la expresión estaba mal.

Hice esto y funciona:
Código PHP:
Ver original
  1. $regex = '#<img[^<>]*?http://(?!dominio\.com)[^<>]*?>#i';
  2. $html = <<<HTML
  3.   <img src="http://placehold.it/260">
  4.   <img src="http://dominio.com" alt="x">
  5. HTML;
  6.  
  7. var_dump(preg_replace($regex, '', $html));
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #11 (permalink)  
Antiguo 19/02/2016, 16:04
 
Fecha de Ingreso: mayo-2011
Mensajes: 1.201
Antigüedad: 12 años, 11 meses
Puntos: 10
Respuesta: eliminar etiqueta img con php

Hola pateketrueke, en principio gracias por ayudarme, estoy teniendo problemas quise adaptar tu expresion pero no me funciona quiero validar el src es decir si hay que no tengan esta ruta /img/validas/ me las elimine probe asi:
Código regexp:
Ver original
  1. [HIGHLIGHT="PHP"]$html = <<<HTML
  2.   <img alt="" src="/no-permitida/nombre_img.jpg">
  3.   <img id="" alt="" src="/img/validas/nombre_img.jpg" alt="x">
  4. HTML;
  5.  
  6. $regex='#<img[^<>]*?src="/(?!img/validas)[^<>]*?>#i';

var_dump(preg_replace($regex,'',$html));[/HIGHLIGHT]

deberia eliminar la primera imagen(no-permitida) en cambio me elimina la segunda y si no tengo imagenes me muestra una cadena vacia y esto ultimo tambien quiero evitar, haber si me puedes ver en que estoy fallando, saludos.

Última edición por pithon; 19/02/2016 a las 16:10
  #12 (permalink)  
Antiguo 19/02/2016, 16:22
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: eliminar etiqueta img con php

¿En serio?

Probando el mismo código si funciona:
Código PHP:
Ver original
  1. <?php
  2.  
  3. $regex='#<img[^<>]*?src="/(?!img/validas)[^<>]*?>#i';
  4.  
  5. $html = <<<HTML
  6.     <img alt="" src="/no-permitida/nombre_img.jpg">
  7.   <img id="" alt="" src="/img/validas/nombre_img.jpg" alt="x">
  8. HTML;
  9.  
  10. var_dump(preg_replace($regex, '', $html));
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #13 (permalink)  
Antiguo 21/02/2016, 02:57
 
Fecha de Ingreso: mayo-2011
Mensajes: 1.201
Antigüedad: 12 años, 11 meses
Puntos: 10
Respuesta: eliminar etiqueta img con php

Cita:
Iniciado por pateketrueke Ver Mensaje
¿En serio?

Probando el mismo código si funciona:
Código PHP:
Ver original
  1. <?php
  2.  
  3. $regex='#<img[^<>]*?src="/(?!img/validas)[^<>]*?>#i';
  4.  
  5. $html = <<<HTML
  6.     <img alt="" src="/no-permitida/nombre_img.jpg">
  7.   <img id="" alt="" src="/img/validas/nombre_img.jpg" alt="x">
  8. HTML;
  9.  
  10. var_dump(preg_replace($regex, '', $html));
Hola, tenias razón ya me funciona no se que pasaba, muchas gracias pateketrueke.
Saludos

Etiquetas: etiqueta, img
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 17:23.