PHPCode Syntaxhervorhebung realisieren

xtramen01

Erfahrenes Mitglied
Hallo,

weis jemand wie man an sowas rangehen kann? Oder gibt es gar ein Tutorial dazu?

Ich suche eine Möglichkeit wie hier im Forum wenn man PHP oder HTML Code einfügt, das der Text farblich hervorgehoben wird.
Ist das schwer zu realisieren?

Für BB Code gibt es ja 2-3 schöne Tutorials hier.

Gruss und danke
 
Als erstes bietet sich da der Befehl [phpf]highlight_string[/phpf] bzw. [phpf]highlight_file[/phpf] an.

Ansonsten lohnt sich eventuell das abgucken oder nutzen von einer Drittapplikation wie z. B. GeSHi
 
Nabend,

vielen Dank!
Hat mir sehr geholfen. Hab gar nich gewusst das es sowas gibt.

Nun ich habe mir geshi mal genauer angeschaut und ein wenig ausprobiert.
Habe mir hierzu eine kleine Funktion geschrieben und versuche diese grad in einen BBCode Parser, nach einem Tutorial von hier, zu implementieren.

Leider klappt es nicht ganz so wie ich das will.


Hat da jemand ne Idee, was ich falsch mache?

PHP:
        $search = array();
        $replace = array();

        $search[] = '/\[color=(.*?)\]/';
        $search[] = '/\[size=(.*?)\]/';
        $search[] = '/\[font=(.*?)\]/';
        $search[] = '/\[email\](.*?)\[\/email\]/';
        $search[] = '/\[email=(.*?)\](.*?)\[\/email\]/';
        $search[] = '/\[url\](.*?)\[\/url\]/';
        $search[] = '/\[url=(.*?)\](.*?)\[\/url\]/';
        $search[] = '/\[img\](.*?)\[\/img\]/';
        $search[] = '/\[php\](.*?)\[\/php\]/';

        $replace[] = '<font color="${1}">';
        $replace[] = '<font size="${1}">';
        $replace[] = '<font face="${1}">';
        $replace[] = '<a href="mailto:${1}">${1}</a>';
        $replace[] = '<a href="mailto:${1}">${2}</a>';
        $replace[] = '<a href="${1}">${1}</a>';
        $replace[] = '<a href="${1}">${2}</a>';
        $replace[] = '<img src="${1}" />';

// An dieser Stelle hab ich das besagte Problem

        $replace[] = code_highlight('${1}','php');


        $data = preg_replace($search, $replace, $data);

Als Ausgabe erhalte ich dann den hervorgehobenen Code, also: ${1};
Aber es sollte ja der String zwischen
PHP:
stehen.

Gruss und danke!
 
Zuletzt bearbeitet:
Zurück