Signatur
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
$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);
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>';
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);
// 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.