syntax highlighting
Oggy
- software
0 raik0 Oggy0 Thomas Meinike0 Oggy
moin,
ich will auf meiner site php/c++/dhtml-programmcode mit syntxax highlighting darstellen, d.h. ich habe z.b. eine textdatei mit c++ code und will den auf meiner homepage automatisch FARBIG anzeigen lassen. hier habe ich das ganze mit jscript gelöst gefunden http://www.codeproject.com/jscript/highlight.asp suche aber ein php-modul dafür...
wer weiß rat?
gruß oggy...
hi
... php/c++/dhtml-programmcode mit syntxax highlighting
php-syntax-highlighting ist in php schon eingebaut.
da auch der html/javascript-code farbig dargestellt wird, kannst du es prinzipiell auch für dhtml verwenden.
für c++ kenne ich keine lösung.
grüsse, raik
das ist mir klar, sorry wenn mein problem nicht richtig rüberkam.
ich erstelle über php dynamisch eine htmlseite. weiter habe ich textfiles mit codefragmenten und genau die will ich auf meiner HTML seite darstellen. ist bisher kein problem, das ganze ist aber immer einfarbig. was ich suche ist ein php-modul das meinen sourcecode im textfile in farbiges (syntax highlighted) html umwandelt.
ich dachte der link den ich angegeben habe ist aussagekräftig genug.
trotzdem danke
oggy
Hallo,
ich erstelle über php dynamisch eine htmlseite. weiter habe ich textfiles mit codefragmenten und genau die will ich auf meiner HTML seite darstellen. ist bisher kein problem, das ganze ist aber immer einfarbig. was ich suche ist ein php-modul das meinen sourcecode im textfile in farbiges (syntax highlighted) html umwandelt.
Versuche es mit der PHP 4-Funktion highlight_string(), welche ab Version 4.2.0 einen optionalen Parameter (true/false) hat, um das Ergebnis an eine Variable uebergeben zu koennen.
Da die Funktion fuer PHP-Code gedacht ist, muss man etwas tricksen und jede Zeile in "<? ... ?>" huellen und hinterher die Hilfszeichen wieder entfernen.
Ein einfaches Beispiel:
externe Textdatei test.txt:
function blaBlub()
{
var x,y;
x="Hallo";
y="Welt!";
alert(x+" "+y);
}
PHP-Skript test.php:
<?php
$code=file_get_contents("test.txt");
$codelines=explode("\n",$code);
for($i=0;$i<count($codelines);$i++)
{
$codeline=$codelines[$i];
$codeline=highlight_string("<?".$codeline."?>",true);
$codeline=str_replace("<?","",$codeline);
$codeline=str_replace("?>","",$codeline);
print $codeline."<br>";
}
?>
Damit werden die Codeteile farbig dargestellt. Das Prinzip funktioniert mit typischen Bezeichnern im Rahmen von diversen Sprachen. Der erzeugte Code ist etwas krude, aber man kann mit einigen Stringoperationen Ordnung schaffen, z. B. <font color="..."> gegen <span class="..."> ersetzen, die code-Elemente entfernen und alles mit pre umschließen usw.
Ich verwende diese Technik zur Ausgabe von SVG-Code (also XML), der zum Teil auch JavaScript-Fragmente enthaelt, siehe z. B.: http://svglbc.datenverdrahten.de/?code=funktionsplotter.
MfG, Thomas
hi,
habe doch was einfacheres gefunden, ich wandle die files einfach mit vim in html-code um...
http://www.pro-linux.de/news/2002/4799.html
dein vorschlag hat mir trotzdem weitergeholfen, besten dank
gruß oggy