SSI (programozás)

Az SSI ( Server Side Includes – szerveroldali befoglalások) egy egyszerű nyelv a szerveren lévő weboldalak dinamikus "összeállításához" különálló összetevőkből, és az így létrejövő HTML -dokumentum kiadásához a kliens számára. Az Apache webszerveren a mod_include modul segítségével implementálva . A webszerver alapértelmezett beállításaiban engedélyezve van a HTML fájlok beillesztésének lehetősége, így az utasítások használatához a fájlnak a kiterjesztéssel kell végződnie , ill . .shtml.stm.shtm

Emlékeztetni kell arra, hogy egyes szolgáltatások nem hajtanak végre SSI-parancsokat, ha a fájl kiterjesztése eltér a fentiektől, például .html.

Az SSI szintaxis lehetővé teszi más SSI-oldalak beillesztését az oldal szövegébe, külső CGI -szkriptek hívását, feltételes műveletek végrehajtását (ha / else), változókkal való munkát stb. A nyelv rendkívüli egyszerűsége miatt az SSI-oldalak elkészítése nagyon gyors , azonban az SSI-ből hiányzik a teljes értékű programozási nyelvek számos lehetősége, például a fájlokkal való munka.

Az SSI szintaxis egyes elemeit más szkriptnyelvek is használják , például az ASP .

Alapvető SSI-parancsok

Leírás

config – a vizsgálat különböző aspektusait vezérli. Attribútumai a következők lehetnek:

A sizefmt változói :

<!--#config sizefmt="abbrev"--> Fájlméretet jelenít meg kilobájtban: (17k) <!--#config sizefmt="bytes"--> A fájlméretet bájtokban jeleníti meg (17 076)

A timefmt változói :

Formátum Leírás Példa
%a A hét napjának rövid neve Hétfő
%A A hét napjának teljes neve hétfő
%b A hónap nevének rövidítése December
%B A hónap teljes neve december
%d A hónap napja 01 (nem 1)
%D Dátum "%m/%d/%y" formátumban 12/31/99
%e A hónap napja 13
%H Órák 24 órás formátumban 13
%ÉN Órák 12 órás formátumban 01
%j az év napja 235
%m Hónap száma 01
%M percek 03
%p AM/PM (AM/PM) AM
%r Idő "I:M:S p" formátumban 23:35:46
%S Másodpercek 34
%s Idő másodpercben 1970.01.01 957228726
%T Idő a következő formátumban: "%H:%M:%S" 14:05:34
%U Az év hete 16
%w A hét napjának száma négy
%y Év YY formátumban 99
%Y Év ÉÉÉÉ formátumban 1999
%Z időzóna MSK

Vegye figyelembe, hogy a #config sizefmt és #config timefmt parancsok hatással vannak az összes kapcsolódó SSI-parancsra, ahonnan a lap aljára hívták őket. Ezért a #flastmod és #fsize parancsok minden egyes hívása saját #config paranccsal látható el.

set - egy változó értékét állítja be. Attribútumai a var, amely a változó nevét határozza meg, és a value, amely az értékét határozza meg.

A legtöbb SSI direktíva argumentumában a változók helyettesítése idézőjeles karakterláncokon belül történik. Ezekben az esetekben a dollárjelet úgy lehet beilleszteni, hogy előtte egy perjel van:

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

A kétértelműség elkerülése érdekében a változó nevét kapcsos zárójelek közé helyezheti:

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

A hozzárendelés eredményeként a Zed változó értéke "Xbc_Y" lesz, ha az a változó egyenlő X-szel és az abc változó Y-val.

printenv - Kiírja az úgynevezett " környezeti változók " listáját az értékükkel együtt. Paraméterek nélkül hívják.

Környezeti változók:

echo - kiírja a beállított SSI változó értékét. Érvényes attribútumok:

flastmod - megjeleníti a fájl utolsó módosításának dátumát a timefmt segítségével meghatározott formátumban. Az attribútumok hasonlóak az fsize attribútumokhoz.

fsize – Megjeleníti a fájl méretét a sizefmt segítségével meghatározott formátumban. Érvényes attribútumok:

tartalmazza - egy másik dokumentum vagy fájl szövegét tartalmazza a beolvasott fájlban. Az összes megállapított hozzáférés-korlátozási szabály érvényesül a mellékelt fájlra. Ha abban a könyvtárban, amelyből a fájl szerepel, az IncludesNOEXEC beállítás be van állítva, és a dokumentum felvétele a program futtatását eredményezné, a dokumentum nem kerül bele, és hibaüzenet jelenik meg. A CGI-szkriptek a szokásos módon egy URL-lel hívódnak meg, amely tartalmazhat egy kódolt lekérdezési karakterláncot. A fájl helyét a következő attribútumok határozzák meg:

Feltételes állítások

Az ellenőrzés alapvető elemei a következők:

<!--#if expr="teszt_feltétel" --> <!--#elif expr="teszt_feltétel" --> <!--#else --> <!--#endif -->

Az elif és az else elemek nem kötelezőek.

Az endif elem befejezi az if elemet, és szükséges.

A teszt_feltétel a következők egyike lehet:

Ha a string2 /karakterlánc/ alakú , akkor a rendszer reguláris kifejezésként értelmezi. Szintaxisuk hasonló a Unix egrep parancsának reguláris kifejezéseihez (lásd: Reguláris kifejezések )
(test_condition) igaz, ha a teszt_feltétel igaz;
! a teszt_feltétel igaz, ha a teszt_feltétel hamis
teszt_feltétel1 && teszt_feltétel2 igaz, ha a teszt_feltétel1 és a teszt_feltétel2 is igaz
teszt_feltétel1 || a teszt_feltétel2 igaz, ha legalább a teszt_feltétel1 vagy a teszt_feltétel2 igaz.
"=" és "!=" elsőbbséget élvez az "&&" és a "||" és a "!" a legmagasabb prioritású.

Minden, amit nem ismer fel változóként, karakterláncnak számít. Ha a karakterláncban szóközök vagy tabulátorok vannak, akkor azt idézőjelek közé kell tenni.
Érdemes megjegyezni, hogy jobb, ha nem használunk SSI-parancsokat, amikor oldalakat hozunk létre olyan szerkesztőkben, mint a Front Page - általában nem értik meg és kidobják őket, és hogy az egyik SSI-parancs nem hívható meg a másikból (mivel ez lehetetlen egy SSI-parancsot egy szkriptből és egy szkriptet egy szkriptből) .

Példák

A hibakezelő üzenet beállítása

<!--#config errmsg="[Hiba történt az oldal megnyitásakor. Kérjük, értesítse a webhely tulajdonosát.]" -->

A dátum és az idő kimeneti formátumának beállítása

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

Változók beállítása

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

Fájl módosítási dátum beszúrása

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

Fájl tartalmának beillesztése

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

Állapot ellenőrzés

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