Start · Sprachen · PHP · Referenz · highlight_string

highlight_string

Funktion

Hebt die PHP-Syntax einer Zeichenkette farblich hervor und gibt das Ergebnis als HTML aus oder zeigt es direkt an.

seit PHP 4.0.0 Kategorie: misc

Signatur

highlight_string(string $string, bool $return = false): string|bool

Beschreibung

highlight_string() analysiert den übergebenen PHP-Quellcode und gibt ihn mit Syntax-Hervorhebung als HTML aus. Die verwendeten Farben können über die PHP-Konfiguration (highlight.*-Direktiven in der php.ini) angepasst werden, z. B. highlight.keyword, highlight.string oder highlight.comment.

Standardmäßig wird die HTML-Ausgabe direkt an den Browser gesendet (Rückgabewert true). Wird der Parameter $return auf true gesetzt, gibt die Funktion stattdessen den erzeugten HTML-String zurück, ohne ihn auszugeben. Das ist besonders nützlich, wenn die Ausgabe weiterverarbeitet oder in eine Template-Engine eingebettet werden soll.

Die Funktion eignet sich hervorragend für die Darstellung von Code-Snippets in Dokumentationen, Tutorials, Debugging-Ausgaben oder Entwicklungswerkzeugen. Sie stellt eine Alternative zu highlight_file() dar, wenn der Quellcode nicht als Datei, sondern bereits als String vorliegt.

Das erzeugte HTML enthält <span>-Elemente mit style-Attributen für die Farbgebung und ist in einem <code>-Block eingebettet. Beachte, dass der übergebene String gültigen PHP-Code enthalten muss (inkl. öffnendem <?php-Tag), da die Hervorhebung sonst möglicherweise nicht korrekt funktioniert.

Parameter

Name Typ Default Beschreibung
$string Pflicht string Der PHP-Quellcode als Zeichenkette, der farblich hervorgehoben werden soll. Sollte in der Regel mit einem PHP-Opening-Tag (<?php) beginnen.
$return bool false Wenn true, wird das erzeugte HTML als String zurückgegeben, anstatt direkt ausgegeben zu werden.

Rückgabewert

Typ
string|bool
Beschreibung
Wenn $return auf true gesetzt ist, wird der erzeugte HTML-Code als string zurückgegeben. Andernfalls wird true bei Erfolg zurückgegeben. Im Fehlerfall gibt die Funktion false zurück.

Beispiele

Syntax-Hervorhebung direkt ausgeben

<?php
$code = '<?php
$name = "Welt";
echo "Hallo, " . $name . "!";
?>';

highlight_string($code);
<!-- HTML mit farbiger Syntax-Hervorhebung wird direkt ausgegeben -->

Syntax-Hervorhebung als String zurückgeben und weiterverarbeiten

<?php
$code = '<?php
function greet(string $name): string {
    return "Hallo, " . $name . "!";
}
echo greet("PHP");
?>';

$highlighted = highlight_string($code, true);

// HTML in ein eigenes Container-Element einbetten
echo '<div class="code-block">' . $highlighted . '</div>';
<div class="code-block"><code><span style="color: #000000">...</span></code></div>

Farben über php.ini anpassen und Code hervorheben

<?php
// Farben zur Laufzeit anpassen (alternativ in der php.ini konfigurieren)
ini_set('highlight.keyword', '#007700');
ini_set('highlight.string', '#DD0000');
ini_set('highlight.comment', '#FF8000');
ini_set('highlight.default', '#0000BB');
ini_set('highlight.html', '#000000');

$code = '<?php
// Kommentar
$zahl = 42;
if ($zahl > 0) {
    echo "Positiv";
}
?>';

highlight_string($code);
<!-- HTML mit individuell gefärbter Syntax-Hervorhebung wird ausgegeben -->

// Wichtig · Fallstricke

Gültiger PHP-Code erforderlich: Der übergebene String sollte vollständigen, syntaktisch korrekten PHP-Code enthalten, da die Funktion intern den PHP-Tokenizer verwendet. Fehlt das öffnende <?php-Tag, wird der gesamte Inhalt als HTML/Text behandelt.

XSS-Hinweis: Wenn der hervorgehobene Code in einer Webanwendung angezeigt wird, sollte beachtet werden, dass highlight_string() den Quellcode selbst nicht für die Ausgabe in HTML-Kontexten escaped. Nutze diese Funktion nur mit vertrauenswürdigem Code oder stelle sicher, dass der Eingabe-String kontrolliert ist, um Cross-Site-Scripting (XSS) zu vermeiden.

Ausgabeformat: Das erzeugte HTML ist nicht standardisiert und kann sich zwischen PHP-Versionen leicht unterscheiden. Verlasse dich nicht auf die exakte Struktur des generierten HTMLs für Parsing-Zwecke.