Überschrift Fachinformatikerwissen.de
SHTML (server hypertext markup language) ist eine SSI-Variante von HTML. SSI (server side includes) bedeutet, dass diese Seite Befehle enthält, welche vom Server vor der Ausgabe abgearbeitet werden. Es werden auch die Endungen .shtm oder .sht akzeptiert.
Mit solchen Befehlen können z.B. seitenübergreifend verwendete Bestandteile wie Kopf, Fußzeile oder Menüs eingebunden werden. Auch Variablen, Bedingungen, Operatoren und Reguläre Ausdrücke können eingesetzt werden.

Vorteile durch den Einsatz von SHTML

  • mehrfach benötigte Seitenbereiche können ausgelagert werden
  • Änderungen an diesen Bereichen nur an einer Stelle notwendig
  • seitenübergreifende Änderungen des Seitenlayouts möglich
  • Seiten sind durch weniger Quellcode übersichtlicher

Mehrfach verwendete Bereiche in eine Seite einbinden

Als erstes werden Kopf-, Menü- und Fußbereich in einer separaten Datei gespeichert. Dann werden diese Dateien mit dem include-Befehl an den entsprechenden Stellen der Hauptseite eingebunden. Eine leichtere Pflege der Bereiche ist somit gewährleistet.

Befehl Erklärung
<!--#include file="kopf.shtml" -->
file: zum Einbinden einer Datei aus dem gleichen oder Unterverzeichnis
<!--#include virtual="../bereiche/kopf.shtml" -->
virtual: zum Einbinden einer Datei mit Pfadangabe

Variablen verwenden

Man kann Werte für Variablen setzen und ausgegeben, oder verfügbare Umgebungsvariablen verarbeiten.

Befehl Erklärung
<!--#set var="Title" value="Seitentitel" -->
mit "var" wird die Variable gesetzt und mit "value" wird ihr ein Wert übergeben
<!--#echo var="Title" -->
mit "echo" kann der Wert der Variable ausgegeben werden
<!--#echo encoding="url" var="DATE_LOCAL" -->
Umgebungsvariable Datum und Uhrzeit ausgegeben
<pre>
<!--# printenv -->
<pre>
Ausgabe aller gesetzter Umgebungsvariablen auf dem Bildschirm

Bedingungen setzen

Das Ausführen von Befehlen kann auch an Bedingungen geknüpft werden. Sie werden dann erst ausgeführt, wenn die Bedingungen zutreffen.

Bedingung Erklärung
<!--#if expr="Bedingung" -->
if-Bedingung muss immer mit endif beendet werden
<!--#elif expr="weitere Bedingung" -->
ein weitere Bedingung nach if-Bedingung
<!--#else -->
wenn Bedingung nicht zutrifft
<!--#endif -->
Beenden der Bedingungen

Operatoren verwenden

Für das Setzen von Bedingungen sind natürlich auch Operatoren zum Vergleichen oder Verbinden von Bedingungen notwendig.

Operator Erklärung
a = b Werte von a und b sind gleich
a != b Wert von a ist ungleich Wert b
a < b Werte von a ist kleiner b
a > b Werte von a ist größer b
a <= b Werte von a ist kleiner oder gleich b
a >= b Werte von a ist größer oder gleich b
a = b && c = d Wert von a ist gleich b und c ist gleich d
a = b || c = d Wert von a ist gleich b oder c ist gleich d

letzte Änderung: 04.04.2019