Ver Mensaje Individual
  #1 (permalink)  
Antiguo 06/07/2010, 14:43
walrus86
 
Fecha de Ingreso: junio-2010
Mensajes: 155
Antigüedad: 13 años, 10 meses
Puntos: 0
ayuda con preg_replace

hola que tal, estoy armando un panelcito BBcode, encontré un código que está bastante completo a la hora de convertir a html, solo que tiene un pequeñisimo error, que como no tengo mucha experiencia en PHP no se como solucionarlo

el preg_replace me encuentra perfectamente los patrones y los reemplaza bien por las etiquetas de html, el problema es que cuando hay etiquetas repetidas, se toman la primera y la ultima y lo que queda en el medio no me convierte.

Les doy un ejemplo. si quiero usar negritas 3 veces seguidas pasa esto, y lo mismo para las demas etiquetas

pongo:
Código:
[ b ]esto es negrita[ /b ] esto no [ b ]esto tambien es negrita[ /b ] pero esto ya no lo es
y sale (pongo en mayusculas lo que sale en negrita):

Código:
esto es negrita[ /b ] esto no [ b ]esto tambien es negrita pero esto ya no lo es
y el codigo es este (pongo solo los de negrita y subrayado, pero a los otros le pasa lo mismo):
Código:
        $bbcode [] = '/\[b\](.*)\[\/b\]/is';
        $html [] = '<b>$1</b>';

        $bbcode [] = '/\[u\](.*)\[\/u\]/is';
        $html [] = '<u>$1</u>';

        $cadena = $_POST['mytxtarea'];
        $cadena = preg_replace ( $bbcode, $html, $cadena );
espero que sepan decirme donde está el error

muchas gracias ;)