PHP Maniac

Das PHP Blog für PHP-Profis und alle die es werden wollen

Syntax Highlighting mit PHP

1 Mai, 2009 (08:47) | Code-Schnipsel, HTML, PHP, Sicherheit, Tipps und Tricks | Von: PHP Maniac

Während in jedem guten Editor der Quellcode bereits automatisch eingefärbt wird, ist dies auf Webseiten längst kein Standard. Jedoch erleichtert das Hervorheben von Schlüsselwörtern, Variablen und Programmcode die Lesbarkeit enorm und ermöglicht einen intuitiveren Umgang mit dem Quelltext. Natürlich lässt sich ein Syntax Highlighting auch von Hand implementieren, z.B. mit einfachen Ersetzungen (str_replace) oder gar Regular Expressions (preg_replace). Was viele jedoch nicht wissen ist, dass PHP von Haus aus bereits zwei interessante Funktionen zum Einfärben von PHP und HTML Quelltexten zur Verfügung stellt.

PHP Funktionen

Die Funktionen highlight_file() und highlight_string() erledigen die Arbeit für uns. Das Einfärben geschieht hierbei mit Hilfe von HTML Code, die verwendeten Farben lassen sich in der PHP.ini definieren, was aber leider nur die wenigsten Webhoster ihren Kunden anbieten. In der Regel kann man aber auch mit den Standardfarben gut leben, besser als nicht eingefärbter Code ist das Ergebnis allemal.

highlight_string($quellcode, false);
highlight_file($dateiname, false);
 
$data = highlight_string($quellcode, true);
$data = highlight_file($dateiname, true);

Übergeben wird, je nach Funktion, der Quellcode aus einer Variablen (highlight_string) oder direkt die Datei mit dem Quellcode. Über den boolschen (optionalen) Parameter lässt sich festlegen, ob die Funktionen den eingefärbten Code direkt ausgeben sollen (false, Standard) oder ob dieser zur weiteren Verarbeitung zurückgegeben wird (true).

Beispielcode

Soviel also zum eingebauten Syntax Highlighting, welches wirklich ein hilfreiches Mittel sein kann. Der Präsentierte Quelltext wird für den Leser deutlich aufgewertet und gewinnt so deutlich an Lesbarkeit. Allerdings sollte die Funktion mit Bedacht verwendet werden, gelingt es z.B. einem Angreifer durch eine Schwachstelle im PHP Programm die einzufärbenden Dateien selbst auszuwählen, so könnte er sich auch den Quelltext von Konfigurationsdateien anzeigen lassen. Dies birgt natürlich eine gewisse Gefahr, da hier oft MySQL Passwörter, oder andere sensible Informationen, gespeichert werden.

Zum Abschluss, wie immer, noch ein kurzes Beispiel:

$quelltext = "<?php echo 'hallo!'; ?>";
highlight_string($quelltext, false);
Be Sociable, Share!

Schreibe einen Kommentar