Ver Mensaje Individual
  #3 (permalink)  
Antiguo 02/05/2009, 21:34
okram
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: Hay una cosa en este codigo que hace que se muestre mal el <?

Es algo complejo el tema de bbcodes para incrustar códigos. Si conviertes a entidades html antes de pasar el texto por la función que va a colorear el codigo, entonces tendrás un coloreado incorrecto (como el que obtienes). Si lo haces después, arruinarás el coloreado.

Una solución "rápida" es codificar TODO el texto a entidades html antes de procesar los bbcodes (tal y como lo estas haciendo), y cuando se trate de procesar el código, decodificar primero SÓLO el bloque correspondiente al código y luego colorear. En tu caso, antes de usar highlight_string() en tu función phpcojecolor(), usar htmlspecialchars_decode() o html_entity_decode() para regresar el código a su versión original.