Dez 27

PHP Code Highlighting

Tag: PHP Tipps und TricksLeichti @ 6:21 pm

Oft sieht man das PHP Code Farbig in HTML ausgegeben wird. Viele fragen sich, wie funktioniert das?
Das ganze ist sehr viel einfacherer als die meisten von euch denken. Dazu ist im Prinzipp nur eine einzige PHP Funktion nötig:

highlight_string();

Diese Funktion highlighted die syntax des PHP Codes. Ein Beispiel:

$string = "";
highlight_string($string);
// Ausgabe //
echo $string;

Aber Achtung:
Wenn wir als Beispiel

highlight_string("echo "string";");

haben, haben wir ein Problem.
Es wird nicht funktionieren. Stattessen muss man die " (Anführungszeichen) escapen!
Die funktioniert wie folgt:

highlight_string("echo \"string\";");

oder

highlight_string("echo 'string';");

Die syntax einer ganzen Datei highlighten

Es gibt auch noch die Möglichkeit PHP farbig auszugeben.
Und zwar indem man gleich eine ganze Datei ausließt. Dies funktioniert mit der Funktion

highlight_file("phpfile.php");

Was wird gehighlightet?

  • Zeichenketten ("string")
  • Kommentare (#Kommentar)
  • Schlüsselwörter für Funktionen (z.B. array())
  • Alle anderen Elemente ($string)
  • Alle anderei HTML Elemente.

Wie kann man die Farben umstellen? - Farben der Syntax umstellen

Die Farben kann man in der php.ini Datei umstellen. Jedoch können dies in den meisten Fällen nur Serveradmins.
Eine andere Möglichkeit währe das ganze mittels Regex, oder einfach mit Hilfe der Function str_replace zu lösen. Allerdings kann es da dann sehr leicht zu Fehlern kommen, weshalb von dieser Methode abgeraten werden kann.

Beispiel:

$string = highlight_string("");
 
$string = str_replace($farbe_die_ersetzt_werden_soll, $neue_farbe, $string);

So, was ist nun mit $farbe_die_ersetzt_werden_soll und $neue_farbe gemeint?

 
$farbe_die_ersetzt_werden_soll = "#ff0000"; #Rot
#wird ersetzt durch
$neue_farbe = "#0000ff"; # Blau

Somit würde alles was vorhin Rot geschrieben wurde nacher Blau geschrieben werden!
Viel Spaß beim Testen und Anwenden :)



Tags: , , ,

2 Kommentare zu “PHP Code Highlighting”

  1. Jannik says:

    Hallo,

    mithilfe der Funktion ini_set kann man auch folgende Werte einfach für einen
    ganzen Scriptablauf anpassen (HTML-RGB Wert):

    highlight.bg
    highlight.comment
    highlight.default
    highlight.html
    highlight.keyword
    highlight.string

    Gruß

    Jannik

  2. Leichti says:

    Vielen Dank Jannik! :)
    Werde es bei der nächsten Gelegenheit ändern :)

    Gruß Leichti

Dein Kommentar