phpstring - Highlighter für Code

Erstellt: 07.03.2022 Geändert: 13.11.2023 Lesedauer ≤ 1 Min.

Für Seiten, die mit PHP-Unterstützung angezeigt werden, kann ein in PHP integrierter „Highlighter“ den Code „aufhübschen“. Mit einem Kunstgriff kann damit neben dem originär nur für PHP-Code vorgesehen Konzept gleichermaßen Javascript, u.a. farbig strukturiert werden.

Aufruf

[phpstring thefile "isphp=true" "isstring=false"]
Parameter

thefile

Das ist wahlweise ein rootbasierter Pfad zu einer Datei oder eine Zeichenkette.

isphp
  • „true“ (default): es wird ein PHP-Code übergeben.
  • „false“: Die Datei (z.B. Java-Script) oder die Zeichenkette wird vom Modul temporär mit PHP-Klammern versehen (s.u.), was zu einer (überraschend brauchbaren) Auszeichnung führt.
isstring
  • „false“ (default): Es wird ein Dateipfad übergeben
  • „true“ Es wird eine Zeichenkette übergeben

Übergebene Text-Zeilen müssen „escaped“ werden, andernfalls bricht das Skript die Darstellung der Seite mit einer Fehlermeldung ab:

  • Rechteckige klammern (sonst endet das Modul…) mit [ bzw. ]
  • Unterstriche mit _
  • Hochkommata mit \´´ (´´ für  OSE , der Backslash für PHP)
  • Zeilenumbrüche können mit \n erzeugt werden.

Der Modul-Code

Stand: 21.10.2022

phpstring "thefile=" "isphp=true" "isstring=false"
<div class="mycode">
<?php
$in 
"§§§thefile§§§";
if (!
§§§isstring§§§) {
    
$html file_get_contents($_SERVER["DOCUMENT_ROOT"] . $in);
} else {
    
$html $in;
}
if (!
§§§isphp§§§) {
    
$html str_replace(array('&#36;','&#91;','&#93;','&#95;'),array('$','[',']','_'),$html);
    
$html highlight_string('<?php ' $html '?>',true);
    
$html str_replace(array('\n','&lt;?php&nbsp;','?&gt;'),array('<br/>','',''),$html);
}
else {
    
$html highlight_string($html,true);
}
echo 
$html;

?>
</div>

Mit der im Modul eingefügten Klasse „mycode“ wird die Präsentation des Code-Bereichs gesteuert. Der PHP-Highligher fügt von sich aus HTML-Code ein, auf den das abgestimmt werden muss.