Server Side Includes
SSI Kontrollstrukturen
Die Syntax der SSI-Kontrollstruktur lautet:
<!--#if expr="test_condition" -->
<!--#elif expr="test_condition" -->
<!--#else -->
<!--#endif -->
<!--#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'. |
|
||||||||||
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:
|
||||||||||
test_condition1 || test_condition2 | Wahr, wenn entweder test_condition1 oder test_condition2 wahr ist oder beide Bedingungen wahr sind. |
Wahrheitstafel:
|
- Die Operatoren haben folgende Rangfolge:
- Klammern ( )
- Negation !
- logische Operatoren && ||
- 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.