Foros del Web » Programando para Internet » PHP »

problema con preg_replace

Estas en el tema de problema con preg_replace en el foro de PHP en Foros del Web. Buenas a todos!!! estoy creando un foro y ahora mismo estoy liado con la parte de escribir un post nuevo y estoy creando un codigo ...
  #1 (permalink)  
Antiguo 22/03/2010, 06:29
 
Fecha de Ingreso: junio-2006
Mensajes: 14
Antigüedad: 17 años, 10 meses
Puntos: 0
problema con preg_replace

Buenas a todos!!!
estoy creando un foro y ahora mismo estoy liado con la parte de escribir un post nuevo y estoy creando un codigo bbcode propio.
tengo para cambiar la fuente estas variables
$bbcode[] = "/\[font\=(.*)\](.*)\[\/font\]/i";
$xhtml[] = "<div style=\"font-family:$1\">$2</div>";

y para cambiar el color
$bbcode[] = "/\[color\=(.*)\](.*)\[\/color\]/i";
$xhtml[]="<span style=\"color: $1\">$2<\/span>";

todo funciona correctamente cuando pongo una frase en comic sans y en azul por ejemplo
Código:
[ color=#0000FF][ font=Comic Sans MS]Hola esto esta en comic sans y en azul[/font][/color]
me devuelve
Código HTML:
<span style="color: #0000FF"><div style="font-family:Comic Sans MS">Hola esto esta en comic sans y en azul</div></span> 
el problema viene cuando lo hago al reves
Código:
[ font=Comic Sans MS][ color=#0000FF]Hola esto esta en comic sans y en azul[/color][/font]
me devuelve esto
Código HTML:
<div style="font-family:Comic Sans MS][color=#0000FF]Hola esto esta en comic sans y en azul[/color"></div> 
no tengo mucha tecnica con la funcion preg_replace ni con las expresiones PRCE
He leido un post que explica estas expresiones pero nose cual usar para areglar esto

alguna ayudita???
muchas gracias :D!!
  #2 (permalink)  
Antiguo 22/03/2010, 06:32
Colaborador
 
Fecha de Ingreso: octubre-2009
Ubicación: Tokyo - Japan !
Mensajes: 3.867
Antigüedad: 14 años, 6 meses
Puntos: 334
Respuesta: problema con preg_replace

revisa este post donde hice un aporte hace un tiempo que tiene que ver con el tema

saludos!

http://www.forosdelweb.com/f18/aport...e-html-754210/
__________________
More about me...
~ @rhyudek1
~ Github
  #3 (permalink)  
Antiguo 22/03/2010, 06:50
 
Fecha de Ingreso: junio-2006
Mensajes: 14
Antigüedad: 17 años, 10 meses
Puntos: 0
Respuesta: problema con preg_replace

gracias Hidek1
pero sigue sin funcionarme :(:(
como sigo sin entender las expresiones esas raras pues lo e copiao directamente a mi codigo y queda asi
Código PHP:
$bbcode[] = '/\[font=(?:"|\')?([\w\s-]*)(?:"|\')?\](.*)\[\/font\]/is'$xhtml[] = '<span style="font-family:$1;">$2</span>';
$bbcode[] = '/\[color=(?:"|\')?(.*)(?:"|\')?\](.*)\[\/color\]/i'$xhtml[] = '<font color="$1">$2</font>'

pero el resultado de:

Código:
[ font=Verdana]VERDANAAAAAA[/font]
[ color=#0000FF][ font=Comic Sans MS]Hola esto esta en comic sans y en azul[/font][/color]
[ font=Comic Sans MS][ color=#0000FF]Hola esto esta en comic sans y en azul[/color][/font]

queda asi:
Código HTML:
[ font=Verdana]VERDANAAAAAA[/font]<br />
<font color="#0000FF][ font=Comic Sans MS]Hola esto esta en comic sans y en azul[/font"></font><br />
[ font=Comic Sans MS]<font color="#0000FF">Hola esto esta en comic sans y en azul</font></span><br /> 

no entiendo porque no coje el corchete final de "#0000FF" y coje el del /font...
  #4 (permalink)  
Antiguo 22/03/2010, 06:59
Avatar de abimaelrc
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: En el planeta de Puerto Rico
Mensajes: 14.734
Antigüedad: 14 años, 11 meses
Puntos: 1517
Respuesta: problema con preg_replace

¿No será que estás dejando un espacio entre [ y la f?
__________________
Verifica antes de preguntar.
Los verdaderos amigos se hieren con la verdad, para no perderlos con la mentira. - Eugenio Maria de Hostos
  #5 (permalink)  
Antiguo 22/03/2010, 07:44
 
Fecha de Ingreso: junio-2006
Mensajes: 14
Antigüedad: 17 años, 10 meses
Puntos: 0
Respuesta: problema con preg_replace

no no xD eso lo hago pa que el bbcode de este foro no me lo convierta

Etiquetas: Ninguno
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 15:32.