Server Side Includes

SSI Kontrollstrukturen

Die Syntax der SSI-Kontrollstruktur lautet:

<!--#if expr="test_condition" -->
<!--#elif expr="test_condition" -->
<!--#else -->
<!--#endif -->

  • Die einzelnen Elemente (#if, #elif, #else, #endif) sind in ihrer Funktion vergleichbar mit if-Anweisungen von Programmiersprachen.
  • expr= ist notwendiger Bestandteil der Syntax.
  • Die Bedingung ("test_condition") wird ausgewertet. Ist das Ergebnis wahr, wird der Text bis zum nächsten #elif-, #else- oder #endif-Element in den Ausgabe-Datenstrom eingebunden bzw. ausgewertet, falls er SSI-Anweisungen enthält.
  • Das #endif-Element ist für die Beendigung einer if-Anweisung notwendig.

Beispiel einer Verzeigung:

Die Syntax der Ausdrücke (test_condition) gilt für Apache 2.2 und kleiner.

<!--#if expr="\"$LINK\" = \"BIBL\"" -->
    <!--#set var="URL" value="http//www.tu-harburg.de/b/index.html" -->
    <!--#set var="IMAGE" value="bibliothek.gif" -->
<!--#elif expr="\"$LINK\" = \"RZ\""-->
    <!--#set var="URL" value="http//www.tu-harburg.de/rzt/index.html" -->
    <!--#set var="IMAGE" value="rechenzentrum.gif" -->
<!--#else -->
    <!--#set var="URL" value="http//www.tu-harburg.de/index.html" -->
    <!--#set var="IMAGE" value="tuhh.gif" -->
<!--#endif -->

Beachten Sie, dass die Bedingung ("test condition") eine Zeichenkette ist und deshalb in Anführungsstriche (") gesetzt werden muss. Ebenso sind z.B. bei einer Abfrage auf Gleichheit die einzelnen Operanden Zeichenketten und müssen deshalb ebenfalls in Anführungsstriche gesetzt werden. Diese Anführungsstriche innerhalb einer Zeichenkette müssen gequotet (\) werden.

Bedingungen ("test_conditions")

können folgendermaßen aufgebaut werden:

Syntax Erläuterungen Beispiele
string wahr, wenn string nicht leer <!--#if expr="$NEXT" -->
... HTML-Code ...
<!--#endif -->
string1 = string2 Identität  
string1 != string2 Ungleichheit  
string1 < string2 Entscheidend ist die Position des jeweils ersten unterschiedlichen Zeichens der Zeichenketten in der ASCII-Tabelle. Ist eine Zeichenkette eine Verlängerung der anderen Zeichenkette, so gilt die kürzere als 'kleiner'.
"Z" < "abc" wahr
"zabc" < "abc" falsch
"abc" < "abcxx" wahr
"abcxxx" < "abcxx" falsch
"abc xx" < "abcxx" wahr
string1 <= string2 entsprechend '<'  
string1 > string2 entsprechend '<'  
string1 >= string2 entsprechend '<'  
( test_condition ) Klammern sind erlaubt  
! test_condition Negation: wahr, wenn test_condition falsch ist.  
test_condition1 && test_condition2 Wahr, wenn test_condition1 und test_condition2 wahr sind. Wahrheitstafel:
 WF
WWF
FFF
test_condition1 || test_condition2 Wahr, wenn entweder test_condition1 oder test_condition2 wahr ist oder beide Bedingungen wahr sind. Wahrheitstafel:
 WF
WWW
FWF

  • Die Operatoren haben folgende Rangfolge:
    1. Klammern    ( )
    2. Negation    !
    3. logische Operatoren    &&    ||
    4. Vergleichsoperatoren    =    !=    <    <=    >    >=
  • Operatoren gleicher Rangstufe werden von links nach rechts abgearbeitet
  • Zeichenketten können in ' ' und in " " gesetzt werden.

Beispiel zum Testen

Das Ausgabefenster des nachfolgenden Beispiels ist zweigeteilt. Rechts sehen Sie den Quelltext und links die HTML-Ausgabe des Beispiels.