Foros del Web » Programando para Internet » PHP »

Ayuda con una expresión

Estas en el tema de Ayuda con una expresión en el foro de PHP en Foros del Web. Hola. Con preg_replace() intento borrar de una cadena todo lo que hay desde <!-- inicio --> hasta <!-- fin -->. Entre ello hay algunas lineas. ...
  #1 (permalink)  
Antiguo 14/01/2006, 11:04
 
Fecha de Ingreso: febrero-2003
Mensajes: 54
Antigüedad: 14 años, 10 meses
Puntos: 0
Ayuda con una expresión

Hola. Con preg_replace() intento borrar de una cadena todo lo que hay desde <!-- inicio --> hasta <!-- fin -->. Entre ello hay algunas lineas. Lo que he intentado es:

Código PHP:
$textolimpio preg_replace("/\<!-- inicio --\>(.*?)\<!-- fin --\>/"""$texto); 
Pero devuelve todo el texto original.

Un ejemplo del texto original sería:

Código PHP:
<!-- inicio -->

INICIO CABECERAS ETC

<!-- fin -->

CONTENIDO QUE TIENE QUE QUEDAR DESPUES DEL PREG REPLACE


<!-- inicio -->

holaaaa <lineas>dshds dsh ddsah  </lineas>

<!-- 
fin --> 
y que el $textolimpio pase a ser:

Código PHP:

CONTENIDO QUE TIENE QUE QUEDAR DESPUES DEL PREG REPLACE 

Alguna sugerencia? Muchas gracias.
  #2 (permalink)  
Antiguo 14/01/2006, 14:18
Avatar de Seppo  
Fecha de Ingreso: marzo-2005
Ubicación: Buenos Aires, Argentina
Mensajes: 1.284
Antigüedad: 12 años, 8 meses
Puntos: 17
después de ver el tema por un buen rato, leí en las contribuciones de php.net algo interesante...
Cita:
Sometimes when you format your own code with the squared bracets [ and ] your code will contain new lines, but the (.*?) will not work because . (dot) accepts everything but a new line (talk about bad luck), you can add the new line manually like that ((.|\n)*?). It took me a while to figure it out without any experience.
Fuente

Conclusión:
$textolimpio = preg_replace("/\<!-- inicio --\>((.|\n)*?)\<!-- fin --\>/", "", $texto);
  #3 (permalink)  
Antiguo 15/01/2006, 14:25
 
Fecha de Ingreso: febrero-2003
Mensajes: 54
Antigüedad: 14 años, 10 meses
Puntos: 0
gracias!!!!!

Mil gracias. Funcionó. Perdón por no haber buscado suficientemente en php.net.

Gracias de nuevo. 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 13:32.