Sourcecode highligten

<Barret>

Mitglied
Hi,

ich habe folgendes Problem ich möchte gern über PHP andere Programmiersprachen die Syntax highligten wie zum Beispiel javascript oder c++ und noch viele mehr... Wie stelle ich sowas an, bin für jeden Ratschlag dankbar.
 
Du müsstest den Code anhand regulärer Ausdrücke zerlegen und dann mit den entsprechenden Farben neu zusammensetzen...
wie die den Code zerlegst, hängt dabei natürlich von der jeweiligen Sprache ab.
 
Kennt du oder irgendwer anderes ein fertigen script für dieses thema oder eine Tutorial, ich habe schon gesucht aber leider nicht fündig geworden. :(
 
oh du hast recht, hab ich überlesen :rolleyes:

Na ja vielleicht hilft es ihm als Ansatz ein eigenes script zu schreiben
 
Hi,

also eine Möglichkeit wäre es wenn du alle Befehle die zb blau werden sollen in ein Array schreibst, alle die gelb werden sollen in ein Anderes usw.


$blauCmd = Array (".....");
$gelbCmd = Array (".....");


dann machste:
(der Code steht in $code)

PHP:
foreach($blauCmd as $cmd) {
   $colorCmd = "<font color=\"#0000FF\">".$cmd."</font>";
   $code = str_replace($cmd,$colorCmd,$code);
}
foreach($gelbCmd as $cmd) {
   $colorCmd = "<font color=\"#0000FF\">".$cmd."</font>";
   $code = str_replace($cmd,$colorCmd,$code);
}

weiß nicht ob es wirklich funktioniert, is natürlich ne menge Arbeit:|

Gruß MrF
 
Original geschrieben von Mr. FISHMAN
Hi,

also eine Möglichkeit wäre es wenn du alle Befehle die zb blau werden sollen in ein Array schreibst, alle die gelb werden sollen in ein Anderes usw.


$blauCmd = Array (".....");
$gelbCmd = Array (".....");


dann machste:
(der Code steht in $code)

PHP:
foreach($blauCmd as $cmd) {
   $colorCmd = "<font color=\"#0000FF\">".$cmd."</font>";
   $code = str_replace($cmd,$colorCmd,$code);
}
foreach($gelbCmd as $cmd) {
   $colorCmd = "<font color=\"#0000FF\">".$cmd."</font>";
   $code = str_replace($cmd,$colorCmd,$code);
}


weiß nicht ob es wirklich funktioniert, is natürlich ne menge Arbeit:|

Gruß MrF

Das wäre zu statisch, wenn man z.B. anfangen will C-Variablen zu hightlighten, das müsste man mit back-references machen, also kommst Du um reguläre Ausdrücke und preg_replace nicht rum. :)
 
Zurück