<!--#příkaz parametr="hodnota" parametr="hodnota" ... -->Při odesílání dokumentu server interpretuje tyto příkazy a komentáře nahrazuje výsledkem vloženého příkazu. Například text na řádku s vloženým příkazem:
Poslední modifikace: <!--#flastmod file="$DOCUMENT_NAME"-->je nahrazen při odeslání klientovi takto:
Poslední modifikace: 13. března 1998
<!--#config errmsg="text"--> | Nastavení chybové zprávy, která se vloží do zobrazeného dokumentu místo
chybného vloženého příkazu. Implicitní text je v tom jazyce, ve kterém
je dokument.
Má tvar: [při provádění vloženého příkazu došlo k chybě]. |
<!--#config timefmt="formát"--> | Nastavení formátu výpisu času ve vložených příkazech flastmod. Implicitní formát je odvozen podle jazyka, ve kterém je dokument. Ve formátu lze použít vše, co je povoleno ve formátu funkce strftime(). |
<!--#config sizefmt="formát"--> | Nastavení formátu výpisu velikosti souboru vw vložených příkazech fsize. Formát může být BYTE, což je výpis velikosti ve slabikách, nebo ABBREV, což je zkrácený výpis velikosti v jednotkách B, KB, MB. Implicitně je použit formát ABBREV. |
<!--#echo var="proměnná"--> | Výpis hodnoty proměnné proměnná (jméno proměnné je bez $ na začátku). Pokud není zadaná proměnná definována, vypíše se jako hodnota (none). |
<!--#exec cmd="příkaz_shellu"--> | Provedení příkazu shellu a vložení jeho výstupu do dokumentu. Protože výstup neobsahuje žádné hlavičky a nedá se proto rozpoznat, v jakém kódu je, musí být ve stejném kódu, jako je dokument. Výstup je pak překódován pro klienta stejným způsobem jako dokument. Uvnitř výstupu neprobíhá analýza odkazů, vložených příkazů pro server a nejsou vkládány explicitní přípony jména kódu a jazyku! Pokud generuje příkaz hypertextové odkazy, musí být patřičně upraveny dle proměnných prostředí. |
<!--#exec cgi="URL"--> | Provedení lokálního CGI skriptu zadaného pomocí URL včetně parametrů
a vložení výstupu do dokumentu. Pokud URL není absolutní, vztahuje se
relativně k dokumentu. Spouštění CGI skriptů v jiných adresářích, než
je standardní (cgi-bin) musí být povoleno v konfiguraci serveru
(parametr ExecCGI).
CGI skript musí generovat na prvním řádku výstupu standardní hlavičku "Content-type: text/html; charset=xxx". Výstup CGI skriptu může být v libovolném kódu, je překódován podle požadavků klienta do stejného kódu, jako je hlavní dokument. CGI skript může také pouze vygenerovat hlavičku Location: URL. V tomto případě bude do dokumentu vložen hypertextový odkaz <A HREF="URL">URL</A>. |
<!--#flastmod file="soubor"--> | Vložení času poslední změny souboru soubor. Soubor musí být ve stejném adresáři jako dokument, nebo v některém podadresáři. Čas je vložen ve stejném jazyce, jako je dokument. Formát času je dle konvencí daného jazyka, dá se nastavit příkazem config timefmt. |
<!--#flastmod virtual="URL"--> | Vložení času poslední změny souboru. Soubor může být kdekoli v adresářové struktuře serveru. Kořen URL (adresář /) odpovídá kořenu stromu dokumentů. Čas je vložen ve stejném jazyce, jako je dokument. Formát času je dle konvencí daného jazyka, dá se nastavit příkazem config timefmt. |
<!--#fsize file="soubor"--> | Vložení velikosti souboru. Soubor musí být ve stejném adresáři jako dokument, nebo v některém podadresáři. Formát výpisu velikosti je dán příkazem config sizefmt. |
<!--#fsize virtual="URL"--> | Vložení velikosti souboru. Soubor může být kdekoli v adresářové struktuře serveru. Kořen (adresář /) odpovídá kořenu stromu dokumentů. Formát výpisu velikosti je dán příkazem config sizefmt. |
<!--#include file="soubor.html"--> | Vložení textu souboru soubor.html. Soubor musí být ve stejném adresáři jako dokument, nebo v některém podadresáři. Vkládaný soubor musí být typu "text/html". Zpracování vloženého souboru probíhá tak, jako by byl zpracováván samostatně, je tedy plně analyzován, může obsahovat vložené příkazy pro server (včetně zanořených #include) a je překódován do kódu dle požadavků klienta. |
<!--#include virtual="URL"--> | Vložení souboru. Soubor může být kdekoli v adresářové struktuře serveru. Kořen URL (adresář /) odpovídá kořenu stromu dokumentů. Vkládaný soubor musí být typu "text/html". |
DATE_GMT | Aktuální čas GMT ve standardním formátu. |
DATE_LOCAL | Aktuální lokální čas ve standardním formátu. |
DOCUMENT_NAME | Úplné jméno hlavního souboru, který požadoval klient.
Toto jméno zůstává ve vložených souborech a spuštěných programech pevné.
Lze tedy ve standardní patce, která je vložena na konci dokumentu X,
vypsat čas poslední změny dokumentu X takto:
<!--#flastmod file="$DOCUMENT_NAME"--> |
DOCUMENT_URI | Část URL, která obsahuje přístupovou cestu souboru (jména adresářů a souboru), který požadoval klient. Toto jméno zůstává ve vložených souborech a spuštěných programech pevné. |
LAST_MODIFIED | Čas poslední modifikace souboru, který požadoval klient. Tento čas zůstává ve vložených souborech a spuštěných programech pevný. |
<!--#set var="proměnná" value="hodnota"-->
| Nastavení proměnné proměnná (bez $) na hodnotu hodnota. Proměnnou lze dálo použít v parametrech vložených příkazů a v příkazu #echo. Výskyt proměnné (se znakem $ na začátku) je nahrazen hodnotou proměnné. |
<!--#if expr="výraz"--> | Podmíněné generování dokumentu. Pokud je výsledkem výrazu výraz hodnota TRUE, je následující část dokumentu až po odpovídající #else, #elif nebo #endif normálně zpracovávána. Pokud je výsledkem výrazu FALSE, je následující část dokumentu až po odpovídající #else, #elif nebo #endif ignorována a nazasílá se klientovi. Příkazy #if mohou být zanořeny až do 15 úrovní. |
<!--#else--> | Konec podmíněně generované varianty dokumentu zahájené příkazem #if. Pokud byla předchozí část generována (výsledkem #if bylo TRUE), pak je následující část až po #endif ignorována. Pokud nebyla předchozí část generována (výsledkem #if bylo FALSE), pak je následující část až po #endif normálně zpracována. |
<!--#endif--> | Konec podmíněně generované varianty dokumentu zahájené příkazem #if. |
<!--#elif expr="výraz"--> | Zkrácený příkaz #else a #if. Výraz se interpretuje pouze v případě, že nebyla žádná předchozí větev odpovídajícího příkazu #if (#elif) vyhodnocena kladně (hodnota TRUE). Příkaz #elif nemůže následovat v podmíněném příkazu za příkazem #else. |
řetězec | TRUE, pokud není řetězec prázdný |
řetězec1 relop řetězec2 | Výsledek srovnání dvou řetězců, relační operátor relop může být =, !=, <, >, <=, >=. |
řetězec1 ~ řetězec2 | Srovnání řetězce řetězec1 s regulárním výrazem řetězec2. Výsledkem je TRUE, pokud je v řetězci nalezen podřetězec popsaný regulárním výrazem. |
( výraz ) | Výsledkem je hodnota výrazu v závorkách. |
! výraz | Výsledkem je negace výrazu. |
výraz && výraz ... | Logický AND zapsaných výrazů. |
výraz || výraz ... | Logický OR zapsaných výrazů. |
řetězec je:
<!--#set var="tmp_link" value="<a href='$DOCUMENT_URI.en'>"--> <!--#echo var="tmp_link"--><img src="/icons/english.gif" border="0"></a>Prvním příkazem #set je vygenerován do proměnné tmp_link kompletní řetězec odkazu s doplněním explicitní přípony pro přepnutí na alternativní jazykovou verzi. Příkazem #echo je hodnota proměnné vložena do dokumentu, takže vznikne:
<a href='file.html.en'><img src="/icons/english.gif" border="0"></a>Takto je například řešeno přepínání jazyka na stránkách UIVT. Obecné řešení ošetřující explicitní volbu kódu i CGI skripty je ovšem poněkud složitější, je zde uvedena pouze varianta pro českou verzi:
<!--#if expr="x$QUERY_STRING = x"--> <!--#if expr="x$HTTP_FORCED_CHARSET != x"--> <!--#set var="tmp_link" value="<a href='$DOCUMENT_URI.en.$HTTP_FORCED_CHARSET'>"--> <!--#else--> <!--#set var="tmp_link" value="<a href='$DOCUMENT_URI.en'>"--> <!--#endif--> <!--#else--> <!--#if expr="x$HTTP_FORCED_CHARSET != x"--> <!--#set var="tmp_link" value="<a href='$SCRIPT_NAME.en.$HTTP_FORCED_CHARSET?$QUERY_STRING'>"--> <!--#else--> <!--#set var="tmp_link" value="<a href='$SCRIPT_NAME.en?$QUERY_STRING'>"--> <!--#endif--> <!--#endif--> <!--#echo var="tmp_link"--><img src="/UIVT/img/flag2_gb.gif" alt="" border="0" width="26" height="20"></a>Varianta pro anglickou verzi společné hlavičky vypadá stejně, pouze všechny zkratky "en" jsou nahrazeny "cs".
<!--#if expr="x$DOCUMENT_URI != x"--> <!--#set var="doc_name" value="$DOCUMENT_URI"--> <!--#else--> <!--#set var="doc_name" value="$SCRIPT_NAME"--> <!--#endif--> <!-- Hlavní navigační lišta, položka pro /UIVT/department --> <!--#if expr="$doc_name = /UIVT/department/index.html" --> ### Zobrazujeme index, zobrazit ikonku "v" a mrtvý odkaz na index ### <!--#elif expr="$doc_name >= /UIVT/department/A && $doc_name <= /UIVT/department/z" --> #### Jsme uvnitř /UIVT/department, zobrazit ikonku "v" a živý odkaz na index #### <!--#else--> ### Jsme někde jinde, zobrazit ikonku ">" a živý odkaz na index <!--#endif--> <!-- konec položky pro /UIVT/department --> <!-- Obsah /UIVT/department, vygenerován pouze pokud jsme uvnitř --> <!--#if expr="$doc_name >= /UIVT/department/A && $doc_name <= /UIVT/department/z" --> ### Jsme uvnitř /UIVT/department, generovat obsah do navigační lišty <!-- Položka /UIVT/deparment/history.html --> <!--#if expr="$doc_name = /UIVT/department/history.html" --> ### Jsme na history, generovat ikonku "o" a mrtvý odkaz na history <!--#else--> ### Jsme jinde, generovat ikonku ">" a živý odkaz na history <!--#endif--> <!-- konec /UIVT/deparment/history.html --> ... <!--#endif--> <!-- konec /UIVT/deparment --> ...
$forced = @$_SERVER["FORCED_SUFFIX"]; ... echo "<a href=\"URL$forced\">odkaz</a>";
[ Zpět | Domácí stránka | Web server | Jazyk/Language ]