Ver Mensaje Individual
  #13 (permalink)  
Antiguo 10/12/2009, 23:44
serser
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: Resaltar con highlight_string()

Prueba este código:

Código PHP:
Ver original
  1. function bbcode2html($cadena){
  2.     $BoxStyle = ' style="border:1px solid #ccc;padding:5px;margin:3px;"';
  3.     $bbcode[] = '/\[code\](.*)\[\/code\]/se';
  4.     $html[] = "'Codigo: <div $BoxStyle>'.highlight_string(stripslashes('$1'), true).'</div>'";
  5.     $cadena = preg_replace($bbcode, $html, $cadena);
  6.     return $cadena;
  7. }
La clave estaba en el flag e, que evalúa la parte a reemplazar ($html) como si fuera código fuente, cosa totalmente necesaria para la función highlight_string con el parámetro de retorno puesto en true. La etiquete <pre> la he cambiado por <div> ya que la función highlight_string implica la conversión de espacios, saltos de línea, etc., por sus respectivas entidades html.

Última edición por serser; 11/12/2009 a las 02:02