Ver Mensaje Individual
  #1 (permalink)  
Antiguo 20/08/2009, 16:00
Avatar de totote
totote
 
Fecha de Ingreso: diciembre-2006
Mensajes: 61
Antigüedad: 17 años, 5 meses
Puntos: 0
Pregunta Reemplazar palabras con preg_replace

Hola gente del foro, después de tanto tiempo he vuelto con preguntas, estoy queriendo hacer mi propio phpBBcode, y leyendo encontré como se hace, la mayor parte se utiliza str_replace o preg_replace y venía bien hasta que se me ocurrio identificar etiquetas anidadas, no se si me entienden pero les pongo un ejemplo gráfico.
Como han visto la mayoría que ha hecho un posto o respondió un tema sabe como se utiliza las etiquetas [ code ] y en algunos foros tienen las etiquetas persinalizadas como ser en este caso la etiqueta [ php ] y a su vez cuando hay una dentro de una etiqueta [ php ] si hay una palabra reservada ésta se pone de otro color o en negrita, etc. mi idea es poder hacer lo mismo, detectar esas palabras reservadas y ponerlas de otro color, pero el problema es que que no puedo detectarlas.
En mi ejemplo estoy conviriendo las palabras "reservadas" a mayúsculas, pero hay casos en que no las detecta, el código que estoy utilizando es este:

Código PHP:
<?
$texto 
'codigo a var b var .codigo';
 
$codigoReservada[0] = '/codigo var .codigo/';
$codigoReservadaR[0] = 'codigo VAR .codigo';
$codigoReservada[1] = '/codigo(.+?) var .codigo/';
$codigoReservadaR[1] = 'codigo$1 VAR .codigo';
$codigoReservada[2] = '/codigo(.+?) var (.+?).codigo/';
$codigoReservadaR[2] = 'codigo$1 VAR $2.codigo';
$codigoReservada[3] = '/codigo var (.+?).codigo/';
$codigoReservadaR[3] = 'codigo VAR $1.codigo';
 
$texto preg_replace($codigoReservada,$codigoReservadaR,$texto);
 
echo 
$texto;
?>
cuando $texto tiene estos valores funciona
$texto = 'codigo a var .codigo';
$texto = 'codigo a var b .codigo';
$texto = 'codigo a var b var .codigo';

pero cuando $texto tiene este valor ya no funciona
$texto = 'codigo a var b var c .codigo';

Saludos y espero que puedan ayudarme