Signatur
Beschreibung
show_source() ist ein Alias der Funktion highlight_file() und verhält sich identisch zu dieser. Sie liest eine PHP-Quelldatei ein und gibt deren Inhalt mit HTML-basiertem Syntax-Highlighting aus, wobei die in der php.ini konfigurierten Highlight-Farben verwendet werden.
Standardmäßig sendet die Funktion den hervorgehobenen HTML-Code direkt an den Browser. Wenn der Parameter $return auf true gesetzt wird, gibt die Funktion den generierten HTML-Code als String zurück, anstatt ihn auszugeben.
Da show_source() lediglich ein Alias ist, empfiehlt es sich, direkt highlight_file() zu verwenden, da Aliases in zukünftigen PHP-Versionen potenziell entfernt werden könnten. Für das Hervorheben von Quellcode-Strings (statt Dateien) steht highlight_string() zur Verfügung.
Wichtig: Diese Funktion sollte niemals unkontrolliert auf produktiven Systemen eingesetzt werden, da sie den vollständigen Quellcode einer Datei — inklusive sensibler Informationen wie Datenbankpasswörter oder API-Schlüssel — im Browser anzeigt.
Parameter
| Name | Typ | Default | Beschreibung |
|---|---|---|---|
| $filename Pflicht | string | Pfad zur PHP-Datei, deren Quellcode hervorgehoben dargestellt werden soll. Kann ein relativer oder absoluter Dateipfad sein. | |
| $return | bool | false | Wenn true, wird der erzeugte HTML-Code als String zurückgegeben, anstatt direkt ausgegeben zu werden. |
Rückgabewert
true zurück, wenn die Ausgabe direkt gesendet wurde, oder einen string mit dem HTML-Code, wenn $return auf true gesetzt ist. Bei einem Fehler (z. B. Datei nicht gefunden) wird false zurückgegeben.Beispiele
Quellcode einer Datei direkt im Browser anzeigen
<?php
// Zeigt den Quellcode der aktuellen Datei im Browser an
show_source(__FILE__);
Hervorgehobenen HTML-Code als String erfassen
<?php
// Quellcode in einen String einlesen, statt ihn direkt auszugeben
$highlighted = show_source('beispiel.php', true);
if ($highlighted !== false) {
// HTML in eine Datei schreiben oder weiterverarbeiten
file_put_contents('output.html', $highlighted);
echo 'Datei erfolgreich verarbeitet.';
} else {
echo 'Fehler: Datei konnte nicht gelesen werden.';
}
// Wichtig · Fallstricke
Sicherheitswarnung: Der Einsatz von show_source() auf produktiven Webservern ist äußerst gefährlich, wenn der Dateiname aus Benutzereingaben stammt. Ein Angreifer könnte so den Quellcode beliebiger Dateien — etwa Konfigurationsdateien mit Zugangsdaten — auslesen. Niemals $_GET- oder $_POST-Parameter ungeprüft an diese Funktion übergeben.
Da es sich um einen Alias handelt, ist es empfehlenswert, stattdessen direkt highlight_file() zu verwenden, um eine langfristig stabile Codebasis zu gewährleisten.
Die verwendeten Farben für das Highlighting können in der php.ini über Direktiven wie highlight.string, highlight.comment oder highlight.keyword angepasst werden.