Foros del Web » Programando para Internet » PHP »

Eliminar contenido dentro de etiquetas HTML

Estas en el tema de Eliminar contenido dentro de etiquetas HTML en el foro de PHP en Foros del Web. Hola a todos! ...estoy intentando realizar lo siguiente(voy a tomar como base este ejemplo): Código PHP: $cadena  =  "Hola, que tal estamos, <img src=\"probando.jpg\" width=\"269\" height=\"61\" alt=\"quiero quitar esta imagen\" /> espero que <strong>bien</strong>" ; $text  =  preg_replace ( "/<img (.+?)>/" ...
  #1 (permalink)  
Antiguo 01/09/2012, 21:06
 
Fecha de Ingreso: mayo-2009
Ubicación: La Habana
Mensajes: 92
Antigüedad: 15 años
Puntos: 0
Eliminar contenido dentro de etiquetas HTML

Hola a todos! ...estoy intentando realizar lo siguiente(voy a tomar como base este ejemplo):

Código PHP:
$cadena "Hola, que tal estamos, <img src=\"probando.jpg\" width=\"269\" height=\"61\" alt=\"quiero quitar esta imagen\" /> espero que <strong>bien</strong>";

$text preg_replace("/<img (.+?)>/"''$cadena);
//quitando doble espacio
$text str_replace('  '' '$text);
echo 
$text
lo que necesito es eliminar la etiqueta HTML junto a su contenido, es decir, quitar la imagen y, ademas, quitar todo lo que esta dentro de la etiqueta strong ...el problema viene dado en el patrón que tiene la función, que no se como hacerlo para que acepte todas las etiquetas HTML

muchas gracias y espero haberme explicado bien.

saludos, kceres
  #2 (permalink)  
Antiguo 01/09/2012, 21:25
Avatar de KsrZ  
Fecha de Ingreso: abril-2011
Ubicación: /home/KsrZ/Desktop
Mensajes: 156
Antigüedad: 13 años
Puntos: 26
Respuesta: Eliminar contenido dentro de etiquetas HTML

$text = preg_replace("/<.+?>/", '', $cadena);
eliminas las etiquetas..

$text = preg_replace("/img src\=\".+?\"/", 'img src\=\"\"', $cadena);
o eliminas el link de la imagen
eso?.. sin probar, pero quiero imaginar que anda, y que no are el ridículo xDD
__________________
for (var i = 0; i < 2; i++){
i = !confirm("Trata a tu código como a ti mismo.. este te esta representando.. no te dejes mal parado")? 0 : i;
}
  #3 (permalink)  
Antiguo 04/09/2012, 09:28
 
Fecha de Ingreso: mayo-2009
Ubicación: La Habana
Mensajes: 92
Antigüedad: 15 años
Puntos: 0
Respuesta: Eliminar contenido dentro de etiquetas HTML

@KsrZ, yo lo que necesito es eliminar las etiquetas y lo que esta dentro de esas etiquetas, es decir, si tengo un texto que viene de este modo: Probando con <strong>etiquetas</strong> en negritas me devolviera Probando con en negritas ...es por eso que quiero recurrir a la expresion regular y no importa cual sea la etiqueta HTML que tenga, lo importante es que elimine la etiqueta con todo el contenido que viene dentro de ella ...en el ejemplo anterior sería eliminar <strong>etiquetas</strong>

saludos y gracias por responder!!
  #4 (permalink)  
Antiguo 04/09/2012, 09:34
Avatar de KsrZ  
Fecha de Ingreso: abril-2011
Ubicación: /home/KsrZ/Desktop
Mensajes: 156
Antigüedad: 13 años
Puntos: 26
Respuesta: Eliminar contenido dentro de etiquetas HTML

proba con algo así.. "/<[^>]+.+?[/>|>|.+?</[^>]+.+?>]/i"
no lo probe*
edito:
eso deberia de quitar, etiquetas autocerradas < />, etiquetas comunes<></> y su contenido.. en teoria
igualmente, te comento que en php, existe una función para quitar etiquetas, aunque no te es útil, creo
http://php.net/manual/es/function.strip-tags.php
__________________
for (var i = 0; i < 2; i++){
i = !confirm("Trata a tu código como a ti mismo.. este te esta representando.. no te dejes mal parado")? 0 : i;
}
  #5 (permalink)  
Antiguo 04/09/2012, 09:44
 
Fecha de Ingreso: mayo-2009
Ubicación: La Habana
Mensajes: 92
Antigüedad: 15 años
Puntos: 0
Respuesta: Eliminar contenido dentro de etiquetas HTML

estuve probando y con esta, hasta el momento, funciona.

Código PHP:
Ver original
  1. $description = preg_replace("#<.+?>(.+?)</.+?>#", '', $description);
  2. $description = preg_replace("#<.+?/>#", '', $description);

la del mensaje anterior no me funcionó ...gracias por la respuesta!

saludos, kceres
  #6 (permalink)  
Antiguo 04/09/2012, 09:52
Avatar de KsrZ  
Fecha de Ingreso: abril-2011
Ubicación: /home/KsrZ/Desktop
Mensajes: 156
Antigüedad: 13 años
Puntos: 26
Respuesta: Eliminar contenido dentro de etiquetas HTML

ahh.. jajaja justo estaba editando el otro, por una que había probado, si, me di cuenta, provocaría un desastre con esa expresión
Me alegra que lo ayas resuelto.

saludos
__________________
for (var i = 0; i < 2; i++){
i = !confirm("Trata a tu código como a ti mismo.. este te esta representando.. no te dejes mal parado")? 0 : i;
}
  #7 (permalink)  
Antiguo 04/09/2012, 09:56
 
Fecha de Ingreso: mayo-2009
Ubicación: La Habana
Mensajes: 92
Antigüedad: 15 años
Puntos: 0
Respuesta: Eliminar contenido dentro de etiquetas HTML

en la solución que encontré lo malo es que tengo que ejecutarlo dos veces porque realmente tengo el básico en expresiones regulares jejje ...si tu solución funciona y puedes postearla mejor, es muy posible que sea más optima que la mía jejje

saludos!
  #8 (permalink)  
Antiguo 04/09/2012, 10:25
Avatar de KsrZ  
Fecha de Ingreso: abril-2011
Ubicación: /home/KsrZ/Desktop
Mensajes: 156
Antigüedad: 13 años
Puntos: 26
Respuesta: Eliminar contenido dentro de etiquetas HTML

mi solución era casi igual, pero sin subpatrones ( )
'/<.+[\/>|>]/i'
(igual, hice otra prueba mas, y falla cuando encuentra texto entre tags, solo deja vivo el texto que esta en los bordes)
__________________
for (var i = 0; i < 2; i++){
i = !confirm("Trata a tu código como a ti mismo.. este te esta representando.. no te dejes mal parado")? 0 : i;
}
  #9 (permalink)  
Antiguo 04/09/2012, 11:02
Avatar de KsrZ  
Fecha de Ingreso: abril-2011
Ubicación: /home/KsrZ/Desktop
Mensajes: 156
Antigüedad: 13 años
Puntos: 26
Respuesta: Eliminar contenido dentro de etiquetas HTML

$str = 'algo y <untag> tag comun </cierrotag> aaaa <tagautocerrado atributos="x1 = a" /> algo mas';
echo preg_replace('/(<[^>]+>.+<\/[^>]+>)|(<[^>]+\/>)</i', '', $str);

como resultado:
algo y aaaa algo mas

saludos,
Ksrz.
__________________
for (var i = 0; i < 2; i++){
i = !confirm("Trata a tu código como a ti mismo.. este te esta representando.. no te dejes mal parado")? 0 : i;
}
  #10 (permalink)  
Antiguo 06/09/2012, 07:00
 
Fecha de Ingreso: mayo-2009
Ubicación: La Habana
Mensajes: 92
Antigüedad: 15 años
Puntos: 0
Respuesta: Eliminar contenido dentro de etiquetas HTML

muchas gracias KsrZ por tu ayuda y tu tiempo! ...saludos, kceres

Etiquetas: contenido, etiquetas, html
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 05:09.