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,