SSI (programmering)

SSI ( Server Side Includes - server-side inclusions) är ett enkelt språk för att dynamiskt "sammanställa" webbsidor på servern från separata komponenter och utfärda det resulterande HTML- dokumentet till klienten. Implementerad i Apache -webbservern med modulen mod_include . Aktiverad i standardinställningarna för webbservern, möjligheten att inkludera HTML-filer, så för att använda instruktionerna måste filen sluta med tillägget , eller .shtml.stm.shtm

Man måste komma ihåg att vissa tjänster inte kör SSI-kommandon om filtillägget skiljer sig från ovanstående, till exempel .html.

SSI- syntaxen låter dig inkludera andra SSI-sidor i sidtexten, anropa externa CGI- skript, implementera villkorade operationer (om / annat), arbeta med variabler, etc. På grund av språkets extrema enkelhet går det mycket snabbt att bygga SSI-sidor Men många möjligheter med fullfjädrade programmeringsspråk, till exempel att arbeta med filer, saknas i SSI.

Vissa delar av SSI-syntaxen används även i andra skriptspråk , som ASP .

Grundläggande SSI-kommandon

Beskrivning

config - styr olika aspekter av skanningen. Dess attribut kan vara:

Variabler för sizefmt :

<!--#config sizefmt="abbrev"--> Visar filstorlek i kilobyte: (17k) <!--#config sizefmt="bytes"--> Visar filstorlek i byte (17 076)

Variabler för timefmt :

Formatera Beskrivning Exempel
%a Kort namn på veckodagen mån
%A Veckodagens fullständiga namn måndag
%b Förkortning av månadens namn dec
%B Hela månadens namn december
%d Dag i månaden 01 (inte 1)
%D Datum i formatet "%m/%d/%y" 31/12/99
%e Dag i månaden 13
%H Timmar i 24-timmarsformat 13
%I Timmar i 12 timmars format 01
%j dag på året 235
%m Månadsnummer 01
%M minuter 03
%p AM/PM (AM/PM) AM
%r Tid i formatet "I:M:S p" 23:35:46
%S Sekunder 34
%s Tid i sekunder sedan 1970-01-01 957228726
%T Tid i formatet "%H:%M:%S" 14:05:34
%U Årets vecka 16
%w Veckodag nummer fyra
%y År i YY-format 99
%Y År i formatet ÅÅÅÅ 1999
%Z Tidszon MSK

Observera att kommandona #config sizefmt och #config timefmt påverkar alla relaterade SSI-kommandon varifrån de anropades till botten av sidan. Därför förses varje anrop till kommandona #flastmod och #fsize bäst med sitt eget #config-kommando.

set - ställer in värdet på en variabel. Dess attribut är var, som definierar namnet på variabeln, och värde, som definierar dess värde.

Variabel substitution görs inom citerade strängar i de flesta SSI-direktivsargument. I dessa fall kan dollartecknet infogas genom att föregå det med ett snedstreck:

<!--#if expr="$a = \$test" -->

För att förhindra tvetydighet kan du infoga variabelnamnet med hängslen:

<!--#set var="Zed" value="${a}bc_${abc}" -->

Som ett resultat av denna tilldelning kommer variabeln Zed att ha värdet "Xbc_Y" om variabeln a är lika med X och variabeln abc är lika med Y.

printenv - Skriver ut en lista över så kallade " miljövariabler " med deras värden. Kallas utan parametrar.

Miljövariabler:

echo - skriver ut värdet för den inställda SSI-variabeln. Giltiga attribut:

flatmod - visar datumet för den senaste ändringen av filen i det format som definierats med timefmt. Attributen liknar fsize-attributen.

fsize - Visar storleken på filen i det format som definierats med sizefmt. Giltiga attribut:

inkluderar - inkluderar texten från ett annat dokument eller en annan fil i den skannade filen. Alla etablerade regler för åtkomstbegränsning tillämpas på den medföljande filen. Om katalogen från vilken filen ingår har alternativet IncludesNOEXEC inställt, och inkludering av dokumentet skulle göra att programmet körs, inkluderas inte dokumentet och ett felmeddelande visas. CGI-skript anropas som vanligt med en URL, som kan innehålla en kodad frågesträng. Platsen för filen anges med hjälp av attribut:

Villkorliga uttalanden

De grundläggande delarna av kontroll är:

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

Elementen elif och else är valfria.

Endif-elementet avslutar if-elementet och krävs.

test_condition kan vara något av följande:

Om sträng2 har formen /sträng/ så tolkas det som ett reguljärt uttryck. Deras syntax liknar den för reguljära uttryck i Unix-kommandot egrep (se Regular Expressions )
(test_condition) true om test_condition är sant;
! test_condition är sant om test_condition är falskt
test_villkor1 && test_villkor2 sant om både test_villkor1 och testvillkor2 är sanna
test_villkor1 || test_villkor2 är sant om åtminstone test_villkor1 eller test_villkor2 är sant.
"=" och "!=" har företräde framför "&&" och "||" och "!" har högsta prioritet.

Allt som inte känns igen som en variabel betraktas som en sträng. Om strängen har mellanslag eller tabbar måste den omges av citattecken.
Det som är värt att komma ihåg är att det är bättre att inte använda SSI-kommandon när du skapar sidor i redigerare som Front Page - de förstår dem vanligtvis inte och kastar dem, och att ett SSI-kommando inte kan anropas från ett annat (eftersom det är omöjligt att anropa ett SSI-kommando från ett skript och ett skript från ett skript) .

Exempel

Ställer in felhanterarens meddelande

<!--#config errmsg="[Det gick inte att öppna sidan. Meddela webbplatsägaren.]" -->

Ställa in format för datum och tid

<!--#config timefmt="%d/%m/%y" --> Utdata: 03/07/06 <!--#config timefmt="%d/%m/%Y, %H:%M:%S" --> Utdata: 03/07/2006, 20:16:33

Ställa in variabler

http://<!--#echo var="HTTP_HOST"--><!--#echo var="DOCUMENT_URI"--> Produktion: http://ru.wikipedia.org/w/index.php?title=SSI_(programmering)

Infoga filändringsdatum

<!--#flastmod file="file.html"-->

Klistra in innehållet i en fil

<!--#include file="footer.html"--> <!--#include virtual="header.asp"--> <!--#include virtual="/right.links.txt"-->

Tillståndskontroll

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