Foros del Web » Programando para Internet » PHP »

Obtener bloques de código encerrados entre dos etiquetas

Estas en el tema de Obtener bloques de código encerrados entre dos etiquetas en el foro de PHP en Foros del Web. Hola... estoy buscando la manera de resaltar bloques de código en mis artículos. A la hora del formulario utilizo algo parecido al BBCode que usa ...
  #1 (permalink)  
Antiguo 12/09/2011, 15:58
Avatar de Alvaro_Franz  
Fecha de Ingreso: mayo-2011
Mensajes: 84
Antigüedad: 12 años, 10 meses
Puntos: 4
Obtener bloques de código encerrados entre dos etiquetas

Hola... estoy buscando la manera de resaltar bloques de código en mis artículos.
A la hora del formulario utilizo algo parecido al BBCode que usa este foro...

[HIGHLlGHT=xx]el código completo[/HIGHLIGHT]

Necesito pasar el contenido de esas etiquetas por una función, antes de mostrarlo... y quiero hacerlo de la siguiente forma.

Analizar el contenido completo en búsqueda de estas etiquetas, cuando la encuentre, guardar el bloque completo y pasarlo por la función, luego seguir buscando más bloques y así hasta el final.

No sé si esto será posible con php, pero me gustaría algo de orientación para saber qué buscar... y si hay alguna manera más efectiva de colorear código en el lado servidor me gustaría poder conocerla.
__________________
La verdadera libertad consiste en dominarse a uno mismo
  #2 (permalink)  
Antiguo 12/09/2011, 17:41
Avatar de Hazuki  
Fecha de Ingreso: mayo-2011
Mensajes: 34
Antigüedad: 12 años, 10 meses
Puntos: 7
Respuesta: Obtener bloques de código encerrados entre dos etiquetas

Sí, es posible. Investiga un poco sobre las expresiones regulares.
  #3 (permalink)  
Antiguo 12/09/2011, 23:26
Avatar de andresdzphp
Colaborador
 
Fecha de Ingreso: julio-2011
Ubicación: $this->Colombia;
Mensajes: 2.749
Antigüedad: 12 años, 8 meses
Puntos: 793
Respuesta: Obtener bloques de código encerrados entre dos etiquetas

Te recomiendo que empieces por leer este aporte

[APORTE] Expresiones PCRE

Este otro enlace muy útil

y este Manual completo y sencillo de Expresiones Regulares en PHP

saludos.
__________________
Si sabemos como leer e interpretar el manual será mucho más fácil aprender PHP. En lugar de confiar en ejemplos o copiar y pegar - PHP
  #4 (permalink)  
Antiguo 13/09/2011, 09:13
Avatar de Alvaro_Franz  
Fecha de Ingreso: mayo-2011
Mensajes: 84
Antigüedad: 12 años, 10 meses
Puntos: 4
Respuesta: Obtener bloques de código encerrados entre dos etiquetas

Gracias... he estado investigando algunos tutoriales y he avanzado bastante.

Estoy usando la función del aporte:

Código PHP:
return preg_replace_callback('/\[HIGHLIGHT\](.*)\[\/HIGHLIGHT\]/',array($this"parse_code"), $this->source); 
Así analizo cada trozo de código dentro de la misma clase, y funciona todo correcto, pero tengo un problema con la expresión regular... y es que no consigo que incluya además saltos de línea (windows y linux)... habría que añadir /s, pero no resulta.

¿Cómo modifico la expresión?
__________________
La verdadera libertad consiste en dominarse a uno mismo
  #5 (permalink)  
Antiguo 14/09/2011, 10:27
Avatar de Hazuki  
Fecha de Ingreso: mayo-2011
Mensajes: 34
Antigüedad: 12 años, 10 meses
Puntos: 7
Respuesta: Obtener bloques de código encerrados entre dos etiquetas

Erm... no hay que añadir "/s", sólo "s".

Código:
#\[HIGHLIGHT\](.*)\[/HIGHLIGHT\]#s
  #6 (permalink)  
Antiguo 18/09/2011, 07:48
Avatar de Alvaro_Franz  
Fecha de Ingreso: mayo-2011
Mensajes: 84
Antigüedad: 12 años, 10 meses
Puntos: 4
Respuesta: Obtener bloques de código encerrados entre dos etiquetas

Ahora perfecto... muchas gracias.
__________________
La verdadera libertad consiste en dominarse a uno mismo

Etiquetas: bloques, código, etiquetas, 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

SíEste tema le ha gustado a 1 personas




La zona horaria es GMT -6. Ahora son las 12:43.