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 .
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:
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) .