HOME -> SSI_TUTORIAL -> ssi-06 Onsdag, 13. December 2017

HOME
FORUM
OPEN DIRECTORY
BOOKMARK
Offentliggjort 2002 - Opdateret n/a

Lektion 06

Programmering med SSI

Indhold


Top#if - #endif - #elif - #else
#if kommandoen i SSI anvendes på samme måde som i andre programmeringssprog. Via kommandoen #if formuleres logiske udtryk i sammenhæng med anvendelsen af attributten expr=" .... ".
  • #if benyttes til betinget udførelse af en instruktion.
  • #if kommandoen skal altid afsluttes med #endif.


Evaluering af test_betingelse

Via #if kommando foretages en evaluering af test_betingelsen. Viser det sig at resultatet er sandt (true), vil kommandoen blive udført efterfølgende, og afsluttet med #endif kommando. Er evalueringen af kommandoen #if derimod falsk (false), vil #if og #endif blive "oversprunget", og de mellemliggende kommandoer #elif eller #else blive udført.

#elif og #else kommandoer er optioner man kan anvende, men er ikke nødvendig for en simpel #if strukturs funktion. #elif er en sammenskrivning af #else og #if, og bliver anvendt til yderlige udførelse af instruktioner. Moderne programmeringssprog anvender dertil case-struktur.



Syntaks eksempel på anvendelse af #if og #endif.


<!--#if expr="test_betingelse" --> instruktion
<!--#endif -->


Syntaks eksempel på anvendelse af #elif og #else.


<!--#if expr="test_betingelse" --> instruction 1
<!--#elif expr="test_betingelse" --> instruktion 2
<!--#else --> alternativ instruktion 3
<!--#endif -->


En test_betingelse kann være enver form for logisk sammenligning. Det kann være sammenligning af talværdier eller tekststrenge.


Sammenlignings operatorer:
Tegn      
= Lig med a=b a er lige med b
!= Forskellig fra a!=b a er forskellig fra b
> Større end a>b a er større end b
>= Større end eller lig med a>=b a er større end eller lig med b
< Mindre end a<b a er mindre end b
<= Mindre end eller lig med a<=b a er mindre end eller lig med b



Logiske udtryk:
Tegn    
! NOT (negation) (ikke) Er sand hvis test_betingelsen er falsk, og falsk hvis test_betingelsen er sand.
&& AND (og) Er sand hvis både test_betingelse 1 OG test_betingelse 2 er sande.
|| OR (eller) Er sand hvis enten test_betingelse 1 ELLER test_betingelse 2 er sand.

En ikke defineret variabel regnes som værende falsk (false).


TopEksempel på anvendelse af #if struktur
EKSEMPEL 1

Med dette lille eksempel vil jeg blot illustrere hvordan du på en nem måde kan udskrive en tekst, alt afhængig af hvilken ugedag det er.

Jeg starter med at formatere dato formatet (config timefmt), og i dette tilfælde ønsker jeg at anvende ugedagens navne. Efterfølgende kommer #if strukturen.



<!--#config timefmt="%A" -->

<!--#if expr="$DATE_GMT=Monday" -->Det er mandag i dag.
<!--#elif expr="$DATE_GMT=Tuesday" -->Det er tirsdag i dag.
<!--#elif expr="$DATE_GMT=Wednesday" -->Det er onsdag i dag.
<!--#elif expr="$DATE_GMT=Thursday" -->Det er torsdag i dag.
<!--#elif expr="$DATE_GMT=Friday" -->Det er fredag i dag.
<!--#else -->Det er week-end, kom igen på mandag!!
<!--#endif -->



Evalueringen af den indtaste kode.:

Hvis den første betingelse evaluerer sandt, vil den udskrive "Det er mandag i dag". Hvis betingelsen er falsk, vil den næste linie (#elif) blive evalueret, og så fremdeles til og med linie 5 (fredag). Viser det sig at ingen af betingelserne er opfyldt på nuværende tidspunkt, vil vores #else kommando overtage og udskrive den ønskede tekst. Husk at afslutte med #endif ellers virker det ikke.
EKSEMPEL 2

I efterfølgende eksempel vil jeg udskrive en historie alt afhængig af hvilke dage det er. De første to ugedage (mandag og tirsdag) ønsker jeg at udskrive historie 1. De efterfølgende tre dage (onsdag, torsdag og fredag) vil jeg udskrive historie 2. Og i week-end holder vi fri .-)



<!-- #config timefmt="%w" -->

<h1>Dagens historie:</h1>
<!--#if expr="$DATE_LOCAL=1 || $DATE_LOCAL=2" -->
  <!--#include virtual="historie1.txt" -->
<!--#elif expr="$DATE_LOCAL=3 || $DATE_LOCAL=4 || $DATE_LOCAL=5" -->
  <!--#include virtual="historie2.txt" -->
<!--#else -->Ingen historier i Week-end!
<!--#endif -->



Evalueringen af den indtaste kode.:

HVIS udtrykket $DATE_LOCAL er lig med 1 ELLER lig med 2, indsæt da filen "historie1.txt".
ELLERS HVIS udtrykket $DATE_LOCAL er lig med 3 ELLER 4 ELLER 5, indsæt da filen "historie2.txt".
ELLERS skriv "Ingen historier i Week-end! ".
Afsluttende bemærkning.

Jeg vil dog som afslutning lige bemærke, at SSI ikke på nogen som helst måde erstatter hverken CGI eller andet programmerings sprog. SSI er primært et værktøj til at inkludere tekst og andre filer i ens html dokument, samt aktivering af cgi scripts, og af denne simple grund virker #if, #endif, #elif, #else heller ikke i Microsofts IIS.

 

I næste artikel ser vi nærmere på ....
ANVENDELSEN AF <!--#set var="...." >>

 

Copyright © 2002 - 2017
NETeXplorer.dk · All rights reserved Top