Hier auch ein kleines Skriptchen von mir welches auf den Token Funktionen von PHP aufbaut. Mit Befehlsverlinkung.
Noch etwas aufräumen und dann sollte das Ding auch mal auf meiner Seite veröffentlich werden 
 
Kritik gerne.
<?php 
// =============================================================================
// GIBT DEN UEBERGEBENEN PHP CODE FARBLICH ANGEPASST ZURUECK
// =============================================================================
function my_highlight_string($code)
{
    // ==============================================================================
    // ERGAENZENDE FUNKTIONEN
    // ==============================================================================
    // ------------------------------------------------------------------------------
    // GIBT DIE *SELBER* DEFINIERTEN FUNKTIONEN ZURUECK
    // ------------------------------------------------------------------------------
    if (!function_exists('my_get_defined_functions' ) {
) {
        function my_get_defined_functions()
        {
            $funktionen = get_defined_functions();
            return $funktionen['user'];
        }
    }
    // ------------------------------------------------------------------------------
    // SUCHT DEN PASSENDEN SCHLUESSEL ZUM TOKEN UND GIBT IHN ZURUECK
    // ------------------------------------------------------------------------------
    
    if (!function_exists('get_array_key' ) {
) {
        function get_array_key($id, $a_konstanten)
        {
            foreach ($a_konstanten as $key => $wert) {
                if (in_array($id, $wert)) {
                    return $key;
                }
            }
            return false;
        }
    }
    // ==============================================================================
    // VORBEREITUNG
    // ==============================================================================
    
    // Farben definieren
    $a_farben = array(                                   //  STANDARDFARBEN
        'string'   => ini_get('highlight.string' ,       //  #DD0000  rot
,       //  #DD0000  rot
        'comment'  => ini_get('highlight.comment' ,      //  #FF8000  orange
,      //  #FF8000  orange
        'keyword'  => ini_get('highlight.keyword' ,      //  #007700  gruen
,      //  #007700  gruen
        'default'  => ini_get('highlight.default' ,      //  #0000BB  blau
,      //  #0000BB  blau
        'html'     => ini_get('highlight.html' //  #000000  schwarz
          //  #000000  schwarz
    );
    // Token Konstanten in Gruppen fuer Farbbestimmung einteilen
    $a_konstanten = array(
        'string'    => array(T_CONSTANT_ENCAPSED_STRING, T_ENCAPSED_AND_WHITESPACE),
        'comment'   => array(T_COMMENT, T_DOC_COMMENT),
        'default'   => array(T_CLOSE_TAG, T_OPEN_TAG, T_OPEN_TAG_WITH_ECHO, T_VARIABLE, T_STRING, T_LNUMBER, T_WHITESPACE, T_CLASS_C),
        'keyword'   => array(T_ABSTRACT, T_ARRAY, T_ARRAY_CAST, T_AS, T_BOOLEAN_AND, T_BOOLEAN_OR, T_BOOL_CAST, T_BREAK, T_CASE, T_CATCH, T_CLASS, T_CLONE, T_CONCAT_EQUAL, T_CONTINUE, T_DEFAULT, T_DOUBLE_ARROW, T_DOUBLE_CAST, T_ECHO, T_ELSE, T_ELSEIF, T_EMPTY, T_ENDDECLARE, T_ENDFOR, T_ENDFOREACH, T_ENDIF, T_ENDSWITCH, T_ENDWHILE, T_END_HEREDOC, T_EXIT, T_EXTENDS, T_FINAL, T_FOREACH, T_FUNCTION, T_GLOBAL, T_IF, T_INC, T_INCLUDE, T_INCLUDE_ONCE, T_INSTANCEOF, T_INT_CAST, T_ISSET, T_IS_EQUAL, T_IS_IDENTICAL, T_IS_NOT_IDENTICAL, T_IS_SMALLER_OR_EQUAL, T_NEW, T_OBJECT_CAST, T_OBJECT_OPERATOR, T_PAAMAYIM_NEKUDOTAYIM, T_PRIVATE, T_PROTECTED, T_PUBLIC, T_REQUIRE, T_REQUIRE_ONCE, T_RETURN, T_SL, T_SL_EQUAL, T_SR, T_SR_EQUAL, T_START_HEREDOC, T_STATIC, T_STRING_CAST, T_THROW, T_TRY, T_UNSET_CAST, T_VAR, T_WHILE, T_LOGICAL_OR, T_UNSET, T_LIST, T_LOGICAL_AND, T_IS_NOT_EQUAL, T_IS_GREATER_OR_EQUAL, T_FOR, T_MUL_EQUAL, T_DIV_EQUAL, T_SWITCH, T_PLUS_EQUAL, T_DO),
        'html'      => array(T_INLINE_HTML)
    );
    
    // Formatierung von Farbangaben und Links
    $format_highlighting = '<span style="color:%s;">%s</span>';
    $format_link         = '<a href="http://php.net/function.%s" class="php" title="%s()">%s</a>';
    // ==============================================================================
    // SCRIPT
    // ==============================================================================
    $php = '';
    $i   =  0;
    $a_token = token_get_all($code);
    
    foreach($a_token as $token)
    {
        if (is_string($token)) {
            // 1 Buchstaben Token z.B. ( { [ ; usw.
            $php .= sprintf($format_highlighting, $a_farben['keyword'], htmlspecialchars($token));
        } else {
            // Token Inhalt aufteilen
            list($id, $text) = $token;
            // Formatierung beibehalten
            $text = htmlspecialchars($text);
            $text = str_replace('  ', '  ', $text);
            // entsprechenden Schluessel fuer Farbauswahl auslesen
            $key  = get_array_key($id, $a_konstanten);
            if ($id == T_STRING && ($a_token[$i + 1] == '(' || $a_token[$i + 2] == '(' && function_exists($text) && !in_array($text, my_get_defined_functions())) {
 && function_exists($text) && !in_array($text, my_get_defined_functions())) {
                // Manual Link
                $php .= sprintf($format_link, $text, $text, $text);
            } else {
                // normale Ausgabe
                $php .= sprintf($format_highlighting, $a_farben[$key], $text);
            }
        }
        
        // Zaehler fuer Manual Verlinkung
        $i++;
    }
    return str_replace("\n", '<br />', $php);
}
?>