Einfacher Syntaxhighlighter in PHP

PHP SyntaxhighlighterIn folgendem Artikel möchte ich euch zeigen, wie ihr in wenigen Zeilen euren eigenen Syntaxhighlighter schreiben könnt. Mit Hilfe des folgenden PHP Snippets könnt ihr ohne Weiteres Quellcode, gut lesbar, auf eurer Homepage anzeigen lassen.

Das Ganze geht einfacher als ihr denkt. Die wesentliche Arbeit nimmt uns die interne PHP-Funktion highlight_file ab. Diese Funktion liest eine Datei ein und formatiert den Quelltext farbig. Wir müssen dann lediglich noch die Zeilen der Datei zählen und die Zeilennummern, sowie den vorformatierten Text in einem ansehnlichen Format ausgeben.

Da das Snippet nicht all zu lang ist, denke ich, dass die Kommentare im Snippet selber ausreichen. Solltet ihr dennoch Fragen haben, schreibt einfach einen Kommentar.

<?php
function highlight_quellcode($datei)
{
	//Zeilen der Quellcode-Datei zählen
	$anzahl_zeilen = count(file($datei));

	//Liste mit Ziffern aller Zeilennummern erstellen
	$liste_zeilennummern = range(1, $anzahl_zeilen);

	//Zeilennummern als String formatieren. Hinter jede
	//Zeilennummer einen Zeilenumbruch in HTML (<br />)
	$zeilen = implode($liste_zeilennummern, '<br />');

	//Quellcode einlesen und formatieren
	//'true' legt Quellcode in Variable ab
	//'false' würde Quellcode an Ort und Stelle ausgeben
	$quellcode = highlight_file($datei, true);

	//HTML-Ausgabe. CSS Code zur Formatierung der Tabelle
	//Zeilennummern und Quellcode werden in jeweils einer
	//Tabellenspalte ausgegeben
	echo '
	<html>
		<head>
			<style type="text/css">
				.codewrapper {
				margin: 5px;
				border: 1px dashed dimgray;}

				.id {
				text-align: right;
				color: dimgray;
				font: 10pt \'Courier New\';
				padding-right: 5px;
				border-right: 1px dashed dimgray;}

				.code {
				padding-left: 5px;}
			</style>
		</head>

		<body>
			<table class="codewrapper">
				<tr>
					<td class="id">'.$zeilen.'</td>
					<td class="code">'.$quellcode.'</td>
				</tr>
			</table>
		</body>
	</html>';
}

//Aufrufen der Syntaxhighlightfunktion. Als Einzulesende Datei
//wird diese Datei selbst ausgegeben.
highlight_quellcode("short.php");
?>

Ich habe das Snippet in einer Datei namens short.php abgespeichgert. Im Snippet ruft sich das PHP-Script selbst auf und gibt somit seinen eigenen Quelltext aus. Eine Demo könnt ihr euch hier anschauen.

Viele Grüße,
Raffi

Hinterlasse einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Sie dient nur dem Spamschutz.