Удобство SSI
SSI прежде всего заценят web-дизайнеры, так как SSI даёт возможность особенно не утруждаясь использовать уже готовые результаты. Расшифровывается SSI как Server Side Includes (включения на стороне сервера). Эти включения могут быть очень полезны в некоторых случаях. Например, вам нужно выполнить казалось бы простую задачу: включить один html документ в другой. Язык html не позволяет добиться такого результата, а переделывать весь html код в CGI согласитесь, слишком долго. При помощи SSI можно с лёгкостью добиться желанного результата. Синтаксис SSI очень прост, он является обычной вставкой в html документ:
<!--#элемент атрибут1="значение" атрибут2="значение"--> |
Стоит заметить, что тэги <!-- и --> в html являются обычным
комментарием, и, если сервер не поддерживает SSI, то ваш броузер
просто проигнорирует их. Если же SSI сработает вместо этих тэгов, то
перед передачей файла клиенту будет выполнена подстановка, зависящая
от указанных элементов.
Рассмотрим возможные элементы:
echo.
Команда служит для вывода заданной переменной окружения. Имя выводимой
переменной задаётся параметром var. Например:
<!--#echo var="DOCUMENT_URL"--> |
exec.
Исполняет команду или CGI-скрипт. Параметр cgi указывает на скрипт,
который будет запущен. Значением этого параметра должен быть
относительный виртуальный URL к скрипту. Параметр cmd указывает на
команду, которая выполнится сервером.
Примеры:
<!--#exec cgi="test.cgi"--> <!--#exec cgi="/cgi-bin/test.cgi"--> <!--#exec cgi="../test.cgi"--> <!--#exec cmd="/home/users/myname/test.sh"--> |
fsize.
Данный элемент включает размер заданного файла. Сам файл задаётся
параметрами file или virtual. file - параметр, использующийся при
указании физического местоположения файла, virtual - относительного.
Примеры:
<!--#fsize file="/etc/passwd"--> <!--#fsize vitrual="index.html"--> <!--#fsize virtual="file.tar.gz"--> |
flastmod.
Данный элемент включает дату обновления заданного файла. Параметры
элемента: file и virtual. Их употребление аналогично элементу fsize.
Примеры:
<!--#flastmod file="/etc/passwd"--> <!--#flastmod virtual="index.html"--> |
include.
Данный элемент вставляет текст указанный документ, либо результаты
работы CGI-скрипта.Параметры элемента аналогичные: file или virtual.
Примеры:
<!--#include file="/etc/passwd"--> <!--#include virtual="html2.html"--> <!--#include virtual="/cgi-bin/test.cgi"--> |
printenv.
Вставляет значение всех определённых переменных окружения.
Пример:
<!--#printenv--> |
set.
Элемент используется для установки значения переменных. Имя переменной
задаётся параметром var, а значение - value.
Примеры:
<!--#set var="myvar" value="myvalue"--> <!--#set var="USER" value="root"--> <!--#set var="HOME" value="/root"--> |
SSI позволяет также выполнять подстановку условно, в зависимости от каких либо условий. Синтаксис такой:
<!--#if expr="условие1"--> |
Текст для условия1
<!--#elif expr="условие2"--> |
Текст для условия2
<!--#else--> |
Другой текст.
<!--#endif--> |
Примеры использования условных подстановок:
1. Если значение переменной $a равно "test" установим HOME значение "/home/test"
<!--#if expr="$a = test"--> <!--#set var="HOME" value="/home/test"--> <!--#endif--> |
2. Проверка пути к документу.
<!--#if expr=""$DOCUMENT_URL" = "/home/test/index.html""--> |
This is index.html of user test
<!--#if expr=""$DOCUMENT_URL" = "/home/test/file.html""--> |
This is file.html of user test
<!--#else--> |
This is not user test
<!--#endif--> |
И напоследок, добавлю, что SSI будет работать только при расширении shtml у документа.
Copyright Forb (2001)
Нет комментариев. Ваш будет первым!