Foros del Web » Programando para Internet » PHP »

Parsear tags estilo bbCode

Estas en el tema de Parsear tags estilo bbCode en el foro de PHP en Foros del Web. Estoy haciendo un pequeño foro php+mySQL para una web, y tengo un problema. He utilizado como base el foro que hay en www.zonaphp.com (que estaba ...
  #1 (permalink)  
Antiguo 16/02/2004, 15:12
Avatar de xavivars  
Fecha de Ingreso: enero-2002
Ubicación: Benissa - la Marina Alta
Mensajes: 212
Antigüedad: 22 años, 3 meses
Puntos: 1
Pregunta Parsear tags estilo bbCode

Estoy haciendo un pequeño foro php+mySQL para una web, y tengo un problema.

He utilizado como base el foro que hay en www.zonaphp.com (que estaba en el FAQ de PHP).

El problema me llega al final, cuando esta la funcion de parsear las estiquetas al estilo bbCode
Código PHP:
function parsearTags($msg)
{
    
$msg str_replace("[citar]""<blockquote><hr width='100%' size='2'>"$msg);
    
$msg str_replace("[/citar]""<hr width='100%' size='2'></blockquote>"$msg);
    return 
$msg;

Esta es la funcion que aparece, pero el problema viene cuando quiero asegurarme de que existe el tag final antes de parsear nada, para no "abrir" la etiqueta <blockquote> i no cerrarla.

Esto es lo que he hecho:
Código PHP:
function parsearTags($msg)
{
    
$missatge str_replace("[citar](.*)[/citar]"
"<blockquote><hr width='100%' size='2'>
\\1<hr width='100%' size='2'></blockquote>"
$msg);

    return 
$msg;

Este codigo funciona perfectamente, SI SOLO UTILIZO UNA VEZ EL TAG, pero si por alguna razón quiero utilizarlo dos veces, coge el tag de apertura de la primera vez i el de cierre de la segunda vez.

Alguna solucion?

Gracias

Última edición por xavivars; 16/02/2004 a las 15:24
  #2 (permalink)  
Antiguo 16/02/2004, 18:26
Avatar de vitxo  
Fecha de Ingreso: septiembre-2003
Ubicación: Valencia
Mensajes: 219
Antigüedad: 20 años, 7 meses
Puntos: 0
Para controlar que las etiquetas estén equilibradas puedes utilizar una pila.
http://www.phpbuilder.com/columns/sc...25.php3?page=6
Ese tutorial trata sobre cómo interpretar un archivo HTML con un intérprete SAX (Simple API for XML), pero utilizando una pila para controlar la profundidad de las etiquetas.

un saludete.
  #3 (permalink)  
Antiguo 16/02/2004, 19:04
Avatar de xavivars  
Fecha de Ingreso: enero-2002
Ubicación: Benissa - la Marina Alta
Mensajes: 212
Antigüedad: 22 años, 3 meses
Puntos: 1
En la segunda parte, uso ereg_replace en lugar de str_replace, ha sido un error de copy&paste
  #4 (permalink)  
Antiguo 17/02/2004, 14:41
Avatar de xavivars  
Fecha de Ingreso: enero-2002
Ubicación: Benissa - la Marina Alta
Mensajes: 212
Antigüedad: 22 años, 3 meses
Puntos: 1
Nadie sabe como usarlo? :(
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 00:48.