Código PHP:
//sustitullo todos los caracteres del texto por sus entidades html, y pongo la primera letra en mayuscula
$texto= htmlspecialchars(ucwords($texto));
//busco las coincidencias con la expresion regular en texto y las guardo en un array ($regs)
$reg=eregi("((\[code\])(.*)(\[\/code\]))",$texto, $regs);
//trasformo las entidades html del lo que se encuentra entre [code] y [/code]
$codigo=html_entity_decode($regs[3]);
//le paso la funcion que colorea el codigo, aplicada a lo que se encontrabaq entre [code] y [/code], el 1 es para que lo guarde y no lo muestre
$codigo= highlight_string($codigo,1);
//sustitullo [code]codigo[/code] por un div que contiene el codigo coloreado.
$texto=eregi_replace('((\[code\])(.*)(\[\/code\]))',"<div>$codigo</div>",$texto);
ejemplo:
no es codigo [code ]codigo, incluso si pongo [/code ] sigue siendo codigo [code ] sigue siebndo codigo [ /code] ya no es codigo
si incluyo un solo codigo no hay problema, la cuestion es que no me cierra correctamente el 1º [code ], sino que aguanta hasta el ultimo [/code ] que encuentra.
nose si me explico... aver si alguien me puede ayudar