SSI (programmering)

SSI ( Server Side Includes - server-side inclusions) er et simpelt sprog til dynamisk at "samle" websider på serveren fra separate komponenter og udstede det resulterende HTML - dokument til klienten. Implementeret i Apache -webserveren ved hjælp af mod_include -modulet . Aktiveret i standardindstillingerne for webserveren, muligheden for at inkludere HTML-filer, så for at bruge instruktionerne skal filen slutte med filtypenavnet , eller .shtml.stm.shtm

Det skal huskes, at nogle tjenester ikke udfører SSI-kommandoer, hvis filtypenavnet er forskelligt fra ovenstående, for eksempel .html.

SSI- syntaksen giver dig mulighed for at inkludere andre SSI-sider i sideteksten, kalde eksterne CGI - scripts, implementere betingede operationer (hvis / andet), arbejde med variabler osv. På grund af sprogets ekstreme enkelthed er det meget hurtigt at bygge SSI-sider Men mange muligheder for fuldgyldige programmeringssprog, for eksempel arbejde med filer, er fraværende i SSI.

Nogle elementer i SSI-syntaksen bruges også i andre scriptsprog , såsom ASP .

Grundlæggende SSI-kommandoer

Beskrivelse

config - styrer forskellige aspekter af scanningen. Dens egenskaber kan være:

Variabler for sizefmt :

<!--#config sizefmt="abbrev"--> Viser filstørrelse i kilobyte: (17k) <!--#config sizefmt="bytes"--> Viser filstørrelse i bytes (17.076)

Variabler for timefmt :

Format Beskrivelse Eksempel
%en Kort navn på ugedagen man
%EN Ugedagens fulde navn Mandag
%b Måneds navn forkortelse dec
%B Fuldt måneds navn december
%d Dag i måneden 01 (ikke 1)
%D Dato i formatet "%m/%d/%y" 31/12/99
%e Dag i måneden 13
%H Timer i 24-timers format 13
%JEG Timer i 12 timers format 01
%j dag på året 235
%m Månedsnummer 01
%M minutter 03
%p AM/PM (AM/PM) ER
%r Tid i formatet "I:M:S p" 23:35:46
%S Sekunder 34
%s Tid i sekunder siden 01/01/1970 957228726
%T Tid i formatet "%H:%M:%S" 14:05:34
%U Årets uge 16
% vægt Ugedag nummer fire
%y Årstal i YY-format 99
%Y Årstal i formatet ÅÅÅÅ 1999
%Z tidszone MSK

Bemærk, at kommandoerne #config sizefmt og #config timefmt påvirker alle relaterede SSI-kommandoer, hvorfra de blev kaldt til bunden af ​​siden. Derfor er hvert kald til #flastmod og #fsize kommandoerne bedst forsynet med sin egen #config kommando.

sæt - indstiller værdien af ​​en variabel. Dens attributter er var, som definerer navnet på variablen, og værdi, som definerer dens værdi.

Variabel substitution udføres inden for citerede strenge i de fleste SSI-direktivets argumenter. I disse tilfælde kan dollartegnet indsættes ved at sætte en skråstreg foran det:

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

For at forhindre tvetydighed kan du indsætte variabelnavnet i krøllede klammeparenteser:

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

Som et resultat af denne tildeling vil variablen Zed have værdien "Xbc_Y", hvis variablen a er lig med X og variablen abc er lig Y.

printenv - Udskriver en liste over såkaldte " miljøvariabler " med deres værdier. Kaldes uden parametre.

Miljøvariabler:

echo - udskriver værdien af ​​den indstillede SSI-variabel. Gyldige attributter:

flatmod - viser datoen for den sidste ændring af filen i det format, der er defineret ved hjælp af timefmt. Attributterne ligner fsize-attributterne.

fsize - Viser størrelsen på filen i det format, der er defineret ved hjælp af sizefmt. Gyldige attributter:

inkludere - inkluderer teksten fra et andet dokument eller fil i den scannede fil. Alle etablerede adgangsbegrænsningsregler anvendes på den inkluderede fil. Hvis mappen, hvorfra filen er inkluderet, har indstillingen IncludesNOEXEC indstillet, og at inkludere dokumentet ville få programmet til at køre, er dokumentet ikke inkluderet, og der vises en fejlmeddelelse. CGI-scripts påkaldes som sædvanligt med en URL, som kan indeholde en kodet forespørgselsstreng. Placeringen af ​​filen er angivet ved hjælp af attributter:

Betingede udsagn

De grundlæggende elementer i kontrol er:

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

Elementerne elif og else er valgfrie.

Endif-elementet afslutter if-elementet og er påkrævet.

test_condition kan være en af ​​følgende:

Hvis streng2 har formen /streng/ , fortolkes den som et regulært udtryk. Deres syntaks ligner den for regulære udtryk i Unix egrep-kommandoen (se Regular Expressions )
(test_condition) true hvis test_condition er sand;
! test_condition er sand, hvis test_condition er falsk
test_condition1 && test_condition2 sand, hvis både test_condition1 og test_condition2 er sande
test_betingelse1 || test_condition2 er sand, hvis mindst test_condition1 eller test_condition2 er sand.
"=" og "!=" har forrang over "&&" og "||" og "!" har højeste prioritet.

Alt, der ikke genkendes som en variabel, betragtes som en streng. Hvis strengen har mellemrum eller tabulatorer, skal den være omgivet af anførselstegn.
Hvad der er værd at huske på er, at det er bedre ikke at bruge SSI-kommandoer, når man opretter sider i editorer som Front Page - de forstår dem normalt ikke og smider dem væk, og at en SSI-kommando ikke kan kaldes fra en anden (da det er umuligt at kalde en SSI-kommando fra et script og et script fra et script) .

Eksempler

Indstilling af fejlbehandlermeddelelsen

<!--#config errmsg="[Der opstod en fejl ved åbning af siden. Giv venligst webstedsejeren besked.]" -->

Indstilling af outputformat for dato og klokkeslæt

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

Indstilling af variabler

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

Indsæt filændringsdato

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

Indsættelse af indholdet af en fil

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

Tilstandskontrol

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