Краткое описание SSI

SSI - это аббревиатура расшифровывается как Server-Side Includes, что переводится с английского - включения со стороны сервера. Пересылая клиенту файл, содержащий SSI, сервер обрабатывает эти директивы. О применении некоторых директив читайте статью Применение SSI. Здесь же я только опишу директивы и покажу результаты их работы.

 

Обработка SSI требует некоторых ресурсов сервера. Поэтому желательно указать серверу, чтобы он обрабатывал директивы SSI только у файлов с определенным расширением. Я использую расширение .shtml. Для сервера Apache это делается так:

В фале http.conf:
AddType text/html .shtml
AddHandler server-parsed .shtml

Кроме того, на каждый каталог, в котором лежат файлы .shtml нужно поставить опцию +Includes:
<Directory /webdir/mysite/>
Options +Includes
</Directory>

Подробнее об этом лучше почитать в документации по Apache.

SSI-директивы включаются в html-файл в следующем формате:

<!--#SSI-директива = "параметры" -->

Причем обратите внимание на отсутствие пробелов между символами <!--# и самой директивой!

Итак, перейдем к описанию директив:

Пример Результат
ECHO VAR - выводит содержимое переменной окружения.
Ваш IP-<!--#echo var="REMOTE_ADDR" -->
Время на сервере: <!--#echo var="DATE_LОCAL" --> Ваш IP- 212.46.249.76
Время на сервере: Thursday, 05-Dec-2002 15:03:42 YEKT
FSIZE FILE - выводит размер указанного файла
Размер текущего файла: <!--#fsize file="article-ssi.shtml" --> Размер текущего файла: 13k
CONFIG SIZEFMT - определяет формат вывода размера файла
<!--#config sizefmt="bytes" -->
Размер текущего файла: <!--#fsize file="article-ssi.shtml" --> байт. Размер текущего файла: 13,552 байт.
FLASTMOD FILE - выводит время последней модификации файла
Последнее обновление сайта: <!--#flastmod file="article-ssi.shtml"> Последнее обновление сайта: Saturday, 17-Aug-2002 01:48:35 YEKST
CONFIG TIMEFMT - определяет формат вывода даты/времени
<!--#config timefmt="%d-%m-%y %H:%M" -->
Последнее обновление сайта: <!--#flastmod file="article-ssi.shtml">
Время на сервере: <!--#echo var="DATE_LОCAL --"> Последнее обновление сайта: 17-08-02 01:48
Время на сервере: 05-12-02 15:03
INCLUDE FILE | INCLUDE VIRTUAL- вставка содержимого файла
Разница между FILE и VIRTUAL в том, что в первом случае нужно указывать полный путь до файла, а во втором - путь от DOCUMENTROOT-каталога сервера.
В скобках текст из файла HELLO.HTM (<!--#include virtual = "hello.htm" -->)

Примечание: вы можете включать не только текстовые файлы, но и скрипты(CGI, PHP) или файлы с SSI. Перед включением они соответсвующим образом обработаются сервером.
В скобках текст из файла HELLO.HTM ( Большой привет! )
IF / ELIF / ELSE / ENDIF - условный оператор.

Синтаксис таков:
<!--#if expr="УСЛОВИЕ1" -->
Код, который выводится при выполнении УСЛОВИЯ1
<!--#elif expr="УСЛОВИЕ2" -->
Код, который выводится при выполнении УСЛОВИЯ2
<!--#else -->
Код, который выводится при невыполнении УСЛОВИЯ1 и УСЛОВИЯ2
<!--#endif -->
Директив ELIF может быть сколь угодно много. Директивы ELIF и ELSE необязательны.
В УСЛОВИИ можно проверить содержит ли строка подстроку, заключив подсроку в прямые слэши (/):
<!--#if expr="$QUERY_STRING=/button/" --> будет истинно если в QUERY_STRING присутсвует слово button.
Можно применить логические операции к условиям: AND (&&) и OR (||):
<!--#if expr="$REMOTE_ADDR=/192.168.0./ || $REMOTE_ADDR=/192.168.1./" -->

Ваш броузер совместим с
<!--#if expr = "$HTTP_USER_AGENT = /Opera/" -->
Opera
<!--#elif expr = "$HTTP_USER_AGENT = /MSIE/" -->
Internet Explorer
<!--#elif expr = "$HTTP_USER_AGENT = /Mozilla/" -->
Netscape Navigator
<!--#else -->
<!--#echo var="$HTTP_USER_AGENT" -->
<!--#endif -->
Ваш броузер совместим с Internet Explorer
Описание параметров для директивы CONFIG TIMEFMT
Формат Описание Пример
%a Аббревиатура названия дня недели Thu
%A Полное название дня недели Thursday
%b Аббревиатура названия месяца Dec
%B Полное название месяца December
%m Номер месяца 12
%d День месяца (с нулем перед 1-9) 05
%e День месяца 5
%D Дата в формате "%m/%d/%y" 12/05/02
%H Часы в 24-часовом формате 15
%I Часы в 12-часовом формате 03
%M Минуты 03
%S Секунды 42
%p AM|PM PM
%r Время в формате "%I:%M:%S %p" 03:03:42 PM
%T Время в формате "%H:%M:%S" 15:03:42
%s Время в секундах с 01.01.1970 1039082622
%j День года 339
%U Неделя года 48
%w Номер дня недели 4
%y Год в формате ГГ 02
%Y Год в формате ГГГГ 2002
%Z Временная зона YEKT




Рекомендуем почитать

 

Добавить комментарий


Ваше имя:


Комментарий:


Введите: Картинка