Шаг 16 - Что такое SSI ?

Представьте себе такую ситуацию: Вы держатель супер сайта с количеством страниц приближающемся к тысяче (ну или если хотите к 10000 :-). На каждой из них Вы держите свой почтовый адрес, чтобы любой смог попереписываться с вами. Вам пишут просто толпы народу и Вы даже не успеваете все прочитать. Тут не дай бог, ломается почтовый сервер вашего провайдера, причем на неограниченное время. Что делать ??? Ну делаете себе почтовый ящик у другого провайдера. Но сайт !!! Он просто переполнен вашим старым адресом. Что делать ? Сидеть и вручную изменять каждую страничку ? Для этого вам придется угробить пол жизни... :-))) Любой специалист вам скажет : Надо было применять SSI !!!

Так что же это такое ?

Для начала расшифровка SSI. Это Server-Side Includes, что значит вставка на стороне сервера. Звучит не очень понятно :-). Ну если просто, то это возможность того, что сервер будет включать в ваши документы какие то данные во время предачи, т.е. "на лету".

Как настроить ?

Настроить достаточно просто. Кроме того, если Вы настроили свой Apache, как было рассказано в первых шагах, то у Вас уже все настроено. Но если нет, то зайдите в редактор и откройте файл httpd.conf. Найдите и разкомментируйте эти строчки :
  AddType text/html .shtml
  AddHandler server-parsed .shtml
Если Вы их не нашли, то вставьте в конце.

Если Вы не администратор сервера и возможности подправить настройки сервера у Вас нет ,но вы твердо уверены, что на сервере установлен Apache, то в каталоге, где будут лежать файлы SSI, создайте файл с именем .htaccess. В него запишите те две строчки и добавьте:

Options +Includes
Теперь, по идее, все должно работать как часы :-).

Начнем "инклюдить"

Все это мы сделали, чтобы появилась возможность использовать SSI, но вопрос : Как ее использовать ?

Для того чтобы в файл что-то включить используется "команда" вида:

<!--#команда атрибут1="значение" атрибут2="значение" ... -->
Причем признак конца (-->) должен следовать после пробела, чтобы отделить его от основной команды.

На самом деле эти "команды" простые комментарий в файле .html. Но переименовав его в .shtml мы заставляем сервер искать комментарии такого типа и использовать их в качестве команд.

Команды SSI бывают нескольких типов:

К конфигурационным относятся config и set.

Для команды config существуют следующие атрибуты :

errmsg
Задает выводимое сообщение, если во время обработки какой-либо команды была совершена ошибка.
sizefmt
Задает формат вывода размера файла. При значении bytes размер будет выводиться в байтах, а при abbrev размер будет округляться и выводиться с добавкой Kb или Mb
timefmt
Задает формат вывода дат. При задании формата используется символ %(процент) и после него буква означающая тип выводимого значения (название месяца, день недели и .т.д) Вот что означают буквы :
  • %a - название дня недели в сокращенной форме
  • %A - название дня недели в полной форме
  • %b - сокращенное название месяца
  • %B - полное название месяца
  • %d - номер дня месяца в десятичной форме (01 до 31)
  • %H - час в 24 часовой форме (00 до 23)
  • %I - час в 12 часовой форме (01 до 12)
  • %j - номер дня года в десятичной форме (001 до 336)
  • %m - номер месяца в десятичной форме (01 до 12)
  • %M - минуты
  • %p - выводить добавку 'am' или 'pm'
  • %S - секунды
  • %U - номер недели текущего года (первая неделя начинается с первого воскресенья года)
  • %W - номер недли года (первая неделя начинается с первого понедельника)
  • %w - день недели в десятичной форме, воскресенье принимается за 0
  • %x - дата в предпочтительной форме
  • %X - время в предпочтительной форме
  • %y - номер года без века (00 до 99)
  • %Y - номер года с веком
  • %Z - временная зона (имя или аббревиатура)
  • %% - символ % (процент)

Пример:

<!--#config sizefmt="bytes" timefmt="%A %y %X" -->
<p>File size : <!--#fsize file="index.html" -->
<p>Last modyfied : <!--#flastmod file="index.html" -->
В этом случае выведутся данные в таком формате:
File size : 1,958 
Last modyfied : Thursday 99 19:25:16 

Команда set задает значения переменных. Атрибуты :

var
имя устанавливаемой переменной
value
значение этой переменной

Дальше идут команды, которые выводят данные или значения переменных. К ним относятся echo, fsize, flastmod и printenv.

Команда echo выводит содержимое переменной, название которой задается параметром var. Пример :

<!--#set var="enc" value="RUS" -->
<!--#echo var="enc" -->

Команда fsize выводит размер файла указываемого параметром file. Этот параметр задает положение файла относительно текущей директории. Другой параметр virtual задает URL-путь (%-кодированный) до файла относительно текущей директории. Размер файла выводится в формате заданным параметром sizefmt команды config.

<!--#config sizefmt="bytes" -->
<!--#fsize file="index.html" -->

Команда flastmod выводит дату последней модификации файла заданного параметрами file или virtual, как в команде fsize. Формат вывода времени задается параметром timefmt команды config.

Комагда printenv выводит значения всех переменных окружения и переменных заданных с помощью set.

Про остальные команды SSI в следующем шаге.


Предыдущий Шаг | Следующий Шаг | Оглавление
Автор Кузин Андрей - 28.10.99