Foros del Web » Programando para Internet » PHP »

Funcion Colorear codigo

Estas en el tema de Funcion Colorear codigo en el foro de PHP en Foros del Web. hola tengo un foro y quiero implementarle la opcion de colorear codigo PHP asi como lo haces este foro. Algun enlace link o tutorial seria ...
  #1 (permalink)  
Antiguo 18/02/2004, 17:52
Avatar de Gerald  
Fecha de Ingreso: julio-2003
Mensajes: 1.356
Antigüedad: 20 años, 9 meses
Puntos: 2
Funcion Colorear codigo

hola tengo un foro y quiero implementarle la opcion de colorear
codigo PHP asi como lo haces este foro.

Algun enlace link o tutorial seria de mucha ayuda.
GRacias
__________________
Solo por Hoy: Trataré de fortalecer mi mente. Estudiaré y aprenderé algo útil
Hoteldipity
Arte Caracol
  #2 (permalink)  
Antiguo 18/02/2004, 17:58
Ex Colaborador
 
Fecha de Ingreso: junio-2002
Mensajes: 9.091
Antigüedad: 21 años, 10 meses
Puntos: 16
Hola,

http://www.php.net/highlight_string

Saludos.
__________________
Josemi

Aprendiz de mucho, maestro de poco.
  #3 (permalink)  
Antiguo 18/02/2004, 19:27
Avatar de Gerald  
Fecha de Ingreso: julio-2003
Mensajes: 1.356
Antigüedad: 20 años, 9 meses
Puntos: 2
Código PHP:
  function source_highlight($string$line=0){  
   
$linecount substr_count($string"\n") + 1;
   
$string highlight_string($stringtrue);  
   
$ret '<table bgcolor="#BBDD83" cellspacing="0" width="100%" border="0" cellpadding="2"><tr valign="top"><td bgcolor="#7C9B6D" width="0" align="right"><code>';
   for(
$i=1$i<=$linecount$i++) $ret .= "$i\n";
   
$ret .= '</code></td><td nowrap>' $string '</td></tr></table>';
   return 
$ret;
  } 
Como implementaria esto a un Foro

tienen idea de como es el que funciona aqui en este foro?
__________________
Solo por Hoy: Trataré de fortalecer mi mente. Estudiaré y aprenderé algo útil
Hoteldipity
Arte Caracol
  #4 (permalink)  
Antiguo 18/02/2004, 19:33
Avatar de Gerald  
Fecha de Ingreso: julio-2003
Mensajes: 1.356
Antigüedad: 20 años, 9 meses
Puntos: 2
O esta
Código PHP:
<?php
function color_source($string)
{
 
$array_contenido explode("<source>",$string);
 
$final $array_contenido[0];
 for(
$i 1;$i <= count($array_contenido);$i++)
 {
  
$array_contents explode("</source>",$array_contenido[$i]);
  
ob_start();
  
highlight_string($array_contents[0]);
  
$array_contents[0] = ob_get_contents();
  
ob_end_clean();
  
$final .='<font face="Courier new, Courier, Mono" size=3>'.$array_contents[0]."</font>".$array_contents[1];
 }
 return 
$final;
}
?>
__________________
Solo por Hoy: Trataré de fortalecer mi mente. Estudiaré y aprenderé algo útil
Hoteldipity
Arte Caracol
  #5 (permalink)  
Antiguo 19/02/2004, 06:44
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
Geral .. fijate bien ...

Olvidate de que si la función colorea código o no ..

¿que parámetros acepta la función (de que tipo) y que hace al terminar la función?

Bueno, .. ambas funcioens aceptan una "cadena" (string) y te devuelven esa cadena "coloreada" (con su lógica meten todo el HTML que necesite para dejarlo "coloreado").

Así que .. ahora te tocará a tí en principio "identificar" en tu cadena original (ese mensaje de tu foro a la hora de presentarlo en tu página) .. "donde" está el código que hay que colorear para pasarselo a una de estas funciones ...

Por ende .. para el caso tipico de un "foro" donde alguien va a escribir X texto y por médio indicará que "aquí va código a colorear" ... código ... "aquí terminó el código que hay que colorear" .. Pues debes identificarlo para "aislarlo de de cadena original (mensaje) y pasarselo a tu función.

Si lees los comentarios de los usuarios de php.net de la función que te mencionó josemi .. al final tienes un ejemplo completo que colorea tu sintax e incorpora la lógica (expresión regular creo) que indentifica por médio de "bbCode" donde está tu código en el texto (tal cual se hace en este foro donde dices: [ php ] código [/ php ] y se colorea el código ..). Ops! .. tu segunda función ya lo hace .. así que más fácil imposible ...

Ejemplo de uso (pero por favor intenta entenderlo):

Código PHP:
$mensaje="Bla blabla <source> <? echo "hola mundo"?> </source> bla blabla";
$mensaje=color_source($mensaje);
echo $mensaje;
Si te fijas .. la función usa los "tag" <source> para indicar que ahí comienza el código y </source> para decir que ahí termina el código .. cambialos si no te gustan esos nombres o "sintax" usada ..

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.

Última edición por Cluster; 19/02/2004 a las 06:49
  #6 (permalink)  
Antiguo 19/02/2004, 15:46
Avatar de Gerald  
Fecha de Ingreso: julio-2003
Mensajes: 1.356
Antigüedad: 20 años, 9 meses
Puntos: 2
Gracias

MEjor explicado ni en la universidad!!

Gracias cybermaestro Cluster!!

Gracias Josemi por incentivarme a leer
__________________
Solo por Hoy: Trataré de fortalecer mi mente. Estudiaré y aprenderé algo útil
Hoteldipity
Arte Caracol
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 17:18.