SSI (ohjelmointi)

SSI ( Server Side Includes - palvelinpuolen sisällytykset) on yksinkertainen kieli palvelimella olevien web-sivujen dynaamiseen "kokoamiseen" erillisistä komponenteista ja tuloksena olevan HTML -dokumentin lähettämiseksi asiakkaalle. Toteutettu Apache -verkkopalvelimessa mod_include - moduulilla . Verkkopalvelimen oletusasetuksissa on käytössä mahdollisuus sisällyttää HTML-tiedostoja, joten ohjeiden käyttämiseksi tiedoston tulee päättyä tunnisteella , tai .shtml.stm.shtm

On muistettava, että jotkin palvelut eivät suorita SSI-komentoja, jos tiedostotunniste poikkeaa yllä olevasta, esimerkiksi .html.

SSI- syntaksin avulla voit sisällyttää sivutekstiin muita SSI-sivuja, kutsua ulkoisia CGI - skriptejä, toteuttaa ehdollisia operaatioita (jos / muuten), työskennellä muuttujien kanssa jne. Kielen äärimmäisen yksinkertaisuuden vuoksi SSI-sivujen rakentaminen on erittäin nopeaa SSI:stä puuttuvat kuitenkin monet täysimittaisten ohjelmointikielten mahdollisuudet, esimerkiksi tiedostojen kanssa työskentely.

Joitakin SSI-syntaksin elementtejä käytetään myös muissa komentosarjakielissä , kuten ASP .

SSI-peruskomennot

Kuvaus

config - ohjaa tarkistuksen eri puolia. Sen attribuutit voivat olla:

sizefmt : n muuttujat :

<!--#config sizefmt="abbrev"--> Näyttää tiedostokoon kilotavuina: (17k) <!--#config sizefmt="bytes"--> Näyttää tiedostokoon tavuina (17 076)

Timefmt : n muuttujat :

Muoto Kuvaus Esimerkki
%a Viikonpäivän lyhyt nimi ma
%A Viikonpäivän koko nimi maanantai
%b Kuukauden nimen lyhenne joulukuuta
%B Koko kuukauden nimi joulukuu
%d Kuukauden päivä 01 (ei 1)
%D Päivämäärä muodossa "%m/%d/%y" 31.12.99
%e Kuukauden päivä 13
%H Tunnit 24 tunnin muodossa 13
%I Tunnit 12 tunnin muodossa 01
%j vuoden päivä 235
%m Kuukauden numero 01
%M pöytäkirja 03
%p AM/PM (AM/PM) OLEN
%r Aika muodossa "I:M:S p" 23:35:46
%S Sekuntia 34
%s Aika sekunteina 1.1.1970 alkaen 957228726
%T Aika muodossa "%H:%M:%S" 14:05:34
%U Vuoden viikko 16
% w Viikonpäivän numero neljä
%y Vuosi YY-muodossa 99
%Y Vuosi VVVV-muodossa 1999
%Z Aikavyöhyke MSK

Huomaa, että #config sizefmt- ja #config timefmt -komennot vaikuttavat kaikkiin asiaan liittyviin SSI-komentoihin, mistä niitä kutsuttiin sivun alaosaan. Siksi jokainen #flastmod- ja #fsize-komentojen kutsu on parasta varustaa omalla #config-komennolla.

set - asettaa muuttujan arvon. Sen attribuutit ovat var, joka määrittää muuttujan nimen, ja value, joka määrittää sen arvon.

Muuttujien korvaaminen tehdään lainattujen merkkijonojen sisällä useimmissa SSI-direktiivin argumenteissa. Näissä tapauksissa dollarimerkki voidaan lisätä lisäämällä sen eteen vinoviiva:

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

Epäselvyyden välttämiseksi voit lisätä muuttujan nimen aaltosulkeisiin:

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

Tämän määrityksen seurauksena muuttuja Zed saa arvon "Xbc_Y", jos muuttuja a on yhtä suuri kuin X ja muuttuja abc on yhtä suuri kuin Y.

printenv - Tulostaa luettelon niin sanotuista " ympäristömuuttujista " niiden arvoineen. Kutsutaan ilman parametreja.

Ympäristömuuttujat:

echo - tulostaa asetetun SSI-muuttujan arvon. Kelvolliset attribuutit:

flastmod - näyttää tiedoston viimeisimmän muokkauksen päivämäärän timefmt:llä määritetyssä muodossa. Attribuutit ovat samanlaisia ​​kuin fsize-attribuutit.

fsize - Näyttää tiedoston koon sizefmt:llä määritetyssä muodossa. Kelvolliset attribuutit:

sisällyttää - sisältää toisen asiakirjan tai tiedoston tekstin skannattuun tiedostoon. Kaikkia vahvistettuja pääsyrajoitussääntöjä sovelletaan mukana olevaan tiedostoon. Jos hakemistossa, josta tiedosto on sisällytetty, on IncludesNOEXEC-asetus asetettu ja asiakirjan sisällyttäminen saattaisi ohjelman suorittamaan, asiakirjaa ei sisällytetä ja näyttöön tulee virhesanoma. CGI-komentosarjat kutsutaan tavalliseen tapaan URL-osoitteella, joka voi sisältää koodatun kyselymerkkijonon. Tiedoston sijainti määritetään attribuuttien avulla:

Ehdolliset lauseet

Ohjauksen peruselementit ovat:

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

Elif ja muut elementit ovat valinnaisia.

Endif-elementti päättää if-elementin ja vaaditaan.

test_condition voi olla jokin seuraavista:

Jos merkkijono2 on muotoa /merkkijono/ , se tulkitaan säännölliseksi lausekkeeksi. Niiden syntaksi on samanlainen kuin Unixin egrep-komennon säännöllisten lausekkeiden syntaksi (katso Säännölliset lausekkeet )
(testiehto) true, jos test_condition on tosi;
! testin_ehto on tosi, jos testiehto on epätosi
testin_ehto1 && testin_ehto2 tosi, jos sekä testiehto1 että testiehto2 ovat tosi
testi_ehto1 || testin_ehto2 on tosi, jos vähintään testiehto1 tai testiehto2 on tosi.
"=" ja "!=" ovat etusijalla "&&" ja "||" ja "!" on korkein prioriteetti.

Kaikki, mitä ei tunnisteta muuttujaksi, katsotaan merkkijonoksi. Jos merkkijonossa on välilyöntejä tai sarkaimia, se on suljettava lainausmerkein.
Kannattaa muistaa, että on parempi olla käyttämättä SSI-komentoja luotaessa sivuja editoreissa, kuten Front Page - ne eivät yleensä ymmärrä niitä ja heittävät ne pois, ja että yhtä SSI-komentoa ei voida kutsua toisesta (koska se on mahdoton kutsua SSI-komento komentosarjasta ja komentosarja komentosarjasta) .

Esimerkkejä

Virhekäsittelijän sanoman asettaminen

<!--#config errmsg="[Sivua avattaessa tapahtui virhe. Ilmoita sivuston omistajalle.]" -->

Päivämäärän ja kellonajan tulostusmuodon asettaminen

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

Muuttujien asetus

http://<!--#echo var="HTTP_HOST"--><!--#echo var="DOCUMENT_URI"--> Lähtö: http://ru.wikipedia.org/w/index.php?title=SSI_(ohjelmointi)

Lisää tiedoston muokkauspäivämäärä

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

Tiedoston sisällön liittäminen

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

Kuntotarkistus

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