Ver Mensaje Individual
  #2 (permalink)  
Antiguo 08/05/2011, 17:23
alexg88
 
Fecha de Ingreso: abril-2011
Mensajes: 1.342
Antigüedad: 13 años
Puntos: 344
Respuesta: Remplazando tag con preg_replace

La única forma que se me ocurre es usar un bucle llamando a la función varias veces hasta que este cambiado.

El problema está en que una vez que ha sustituido una parte de la cadena no la vuelve a evaluar.

Puedes utilizar la función preg_match para ver si coincide alguna parte de la cadena con la expresión regular para saber cuando parar el bucle.

Algo así:

Código PHP:
Ver original
  1. do{
  2. $txt=preg_replace('^\[color=(.*?)\](.*?)\[\/color\]^', '<font color="\\1">\\2</font>', $txt);
  3. while (preg_match('^\[color=(.*?)\](.*?)\[\/color\]^', '<font color="\\1">\\2</font>' )> 0)

Última edición por alexg88; 08/05/2011 a las 17:35