Очень часто в последнее время стали использовать так называемые включения на стороне сервера (Server Side Includes). А что, собственно, дают эти 'включения'. SSI позволяет объединить повторяющиеся фрагменты кода в один файл, а потом вставлять в нужном месте нужную строку. Рассмотрим простенький пример. У вас есть сайт с энным количеством страниц, на которых одинаковы, допустим, верхняя часть с логотипом, красивым слоганом и навигация. Ваш сайт расширяется вширь и в глубь, появляются раз в неделю новые пункты в меню. Очень затруднительно будет перерывать, например, по 50 страниц на неделе. Применяя SSI, вам достаточно поправить один файл и весь сайт преобразится на глазах.
По названию этой технологии нетрудно догадаться, что работает SSI исключительно на сервере: пользователю выдается конечный результат обработки. Вставить SSI в код HTML не составит труда; стоит написать
<!--#include virtual="top.html"-->
и весь код, хранящийся в top.html, тут же окажется в данном файле, как будто его отсюда никто не удалял.
Рассмотрим поподробнее этот кусочек. <!--# --> - тег SSI, в него вставляются все выполняемые команды. Include означает то самое (включение). По этой команде сервер слегка задумывается и включает-таки требуемый файл. Virtual является атрибутом команды include, значением которого задают путь до вставляемого файла. Расширение у вставляемого файла может быть любое: хоть .html, хоть .txt, хоть .ssi.
Примечание: файл, содержащий тег SSI, должен иметь расширение .shtml или .shtm для того, чтобы сервер мог определять какие файлы преобразовывать стоит, а какие - нет.
Для закрепления прочтенного и для 'пробы пера' проведем эксперимент по созданию 'включаемого' файла, также вы убедитесь в той силе, которой наделена SSI. Создаем обычный документ, в нем пишем "Верхняя часть страницы":
<html>
<head><title>Пробуем на зуб возможности SSI</title></head>
<body>
<h1>Верхняя часть страницы</h1>
<!--#include virtual="bottom.txt"-->
</body>
</html>
Не забываем одарить его расширением с 'лишней' буквой s и вставить тег включения.
Следующим этапом будет создание включаемого файла. Главное помните, что вставляется не сам файл, а весь его код, поэтому излишнюю структуру создавать не стоит.
<span style="color:#00f">Нижняя часть, она же включенная.</span>
Ну, а теперь самый приятный момент: просмотр результата в браузере, где вы убедитесь, что не напрасно потратили силы и время.
Кроме команды включения в документ файла, SSI может выполнять и другие команды. Сейчас мы рассмотрим вывод на экран полезной информации с помощью команды echo. Она имеет единственный атрибут var:
<!--#echo var="имя_переменной"-->
Сервер имеет несколько своих переменных, которые можно вывести на экран, используя команды SSI. Вот некоторые из таких переменных:
-
HTTP_USER_AGENT - имя и версия браузера;
-
PATH - путь к системным папкам;
-
REMOTE_ADDR -адрес удаленного компьютера;
-
SERVER_SOFTWARE - имя и версия сервера;
-
GATEWAY_INTERFACE - имя и версия CGI;
-
SERVER_PROTOCOL - протокол, используемый сервером;
-
QUERY_STRING - строка, полученная от пользователя;
-
SERVER_ADMIN - обычно e-mail админа;
-
SERVER_NAME - имя сервера;
-
SERVER_SIGNATURE - информация о сервере (имя, версия, название, порт подключения);
-
SystemRoot - системная директория;
-
REQUEST_METHOD - метод запроса;
-
DATE_GMT - время и дата по нулевому меридиану;
-
DATE_LOCAL - местное время и дата.
fsize
Команда fsize выводит размер указанного файла.
<!--#fsize virtual="index.html"-->
flastmod
Команда выводит на экран дату и время последней модификации заданного файла. Атрибуты такие же, как у fsize.
Вот на этой ноте и остановимся. Конечно, обхватить необхватный SSI мы до конца не смогли, но хоть поняли, с чем все-таки его едят.
|