netzona.al.ru
 http://netzona.al.ru :: Статьи > РазноеСтраница обновлена: 11.10.2005 
  Главная
 Программы
 Статьи
  Ссылки
  Гостевая
  Чат
  Немного о PHP
  Технология SSI
  BIOS
  Файловая система Linux
  Восстановление XP
lastimaginary.tk
NetZona.al.ru
Получить код
 
Технология SSI

Я хочу рассказать вам об основах технологии Server Side Includes или SSI.
SSI переводится как "включения со стороны сервера". Эта технология помогает сохранить уйму времени при создании сайта и закачке его на сервер. Вообще SSI призвана, насколько это возможно, облегчить работу web-мастера.

Вот, к примеру, вполне реальная ситуация:
У вас есть сайт, который, разумеется, не использует SSI, с числом страниц близким к:, да возьмем хотя бы 50 страниц. Итак, на каждой странице вы, как хороший web-мастер, заботящийся о своих посетителях, разместил текстовое меню. И вдруг по каким-то причинам название какого-то раздела изменилось, а быть может, вам захотелось добавить новый. Что же теперь заново открывать все пятьдесят страниц и переписывать все снова и снова?! В нашем случае это, к сожалению, единственное решение, правда, некоторые хорошие редакторы смогут облегчить эту непосильную ношу (и еще как облегчить!, HomeSite, например).

Так вот, такой проблемы у вас не произошло бы, еcлu вы использовали технологию SSI. Объясняю: если бы вместо текстового меню на всех страницах было бы написано что-то вроде

<!--#include virtual="/SSI/menu_txt.html" -->

А в файле "(WWW)/SSI/menu_txt.html" было бы содержание этого меню, то для того, что бы добавить или изменить раздел нужно было бы только поменять содержание всего лишь одного файла menu_txt.html. Как вы, наверно, уже догадались во все страницы вместо "комментария"
<!--#include virtual ="/SSI/menu_txt.html" -->
будет вставлен код из menu_txt.html.

Синтаксис SSI директив.

Синтаксис SSI директив таков:
Все директивы заключаются в комментарии

<!-- :[пробел]-->
, главным отличием SSI директивы от комментария является символ "#" сразу(!) после "<!--". То есть если быть точным, то все директивы SSI заключаются в
<!--#:[пробел]-->
и никак иначе!

Вот список некоторых SSI "функций" (они сразу пишутся после символа "#")

include

Включает текст (код, содержание) указываемого документа/файла в данный документ. Положение файлов на сервере указывается с помощью следующих атрибутов:

file - необходимо указать путь относительно данного документа, то есть включаемый документ/файл должен находиться либо в том же каталоге, что и данный документ, либо каталогами ниже/выше (SOME_CATALOG/, ../SOME_CATALOG).
virtual - можно указывать как относительный (как в случае с file), так и абсолютный путь (может содержать /SOME_CATOLOG или ../SOME_CATALOG).

Include позволяет включать результат работы CGI скриптов, а также обращаться к ним с какой-то заданной строкой запроса. Например,

<!--#include virtual ="/cgi-bin/script.cgi?action=print&what=OK" -->

set

Устанавливает значение какой-либо переменной. Переменная объявляется с помощью атрибута var, а её значение задается с помощью атрибута value.

<!--#set var="A" value="VARIABLE" -->

переменная A будет иметь значение VARIABLE.
А можно и так:
<!--#set var="b" value="VAR" -->
<!--#set var="c" value="BLE" -->
<!--#set var="A" value="${b}IA\${c}" -->

Переменная A будет равна VARIA${c}
Для того, что бы подставить переменную необходимо её заключить в фигурные скобки и перед всем этим поставить $. Если же вы хотите что бы знак доллара ($) отображался просто как символ, и не обозначал переменную, то поставьте перед ним слеш (\)

echo

выводит значение переменной, указанной в атрибуте var.

<!--#echo var="A" -->

то есть вместо этого кода вставляется значение переменной A

Примеры использования SSI.

Вот содержание главного документа.
MAIN.html

<!--#set var="TITLE" value="Тестовая страница" -->
<!--#set var="KEYWORDS" value="ключевые слова" -->
<!--#set var="DESCRIPTION" value="Описание этого документа" -->
<!--#include virtual="head.html" -->

<!--#include virtual="body.html" -->

<!--#set var="COPYRIGHT" value="Copyright &copy;" -->
<!--#include virtual="down.html" -->

А это содержание включаемых файлов.
head.html

<html>
<head>
<title>Заголовок:<!--#echo var="TITLE" --></title>
<meta http-equiv="Content-Type" content="text/html">
<meta name="description" content="Описание: < !--#echo var="DESCRIPTION" -->">
<meta name="keywords" content="документ, <!--#echo var="KEYWORDS" -->, html">
</head>
<body>

body.html

<h3>Тело документа</h3>

down.html

<p align="center"><font size=2>
<!--#echo var="COPYRIGHT" --></font></p>
</body>
</html>

Как вы смогли убедиться из данного примера, пользоваться SSI не так уж и трудно, и более того очень полезно.

Технические аспекты использования SSI.

Стоит несколько слов сказать о техническом обеспечении, которое необходимо для использования SSI. Если вы просто создадите файл на своем локальном диске с корректными SSI командами и откроете его в вашем браузере, то никаких включений не произойдет, т.к все выражения типа <!-- :. --> для браузера являются чистой воды комментариями. Так называемые "включения" происходят еще на стадии обработки документа сервером, прежде чем послать его пользователю. В нашем случае такого этапа (обработка документа сервером) вообще нет. Так вот для того, что бы вы смогли полностью ощутить все преимущества SSI на своем локальном компьютере, вам нужен "домашний" web-сервер.
И вот еще что: не каждый провайдер, предоставляющий хостинг, поддерживает SSI. Обычно это проблема бесплатных хостингов. Но и некоторые из них, если уж и позволяют использовать SSI, то требуют за это некую плату, например, размещение рекламы на сайте.

Вместо заключения хочу сказать что, технология SSI была специально разработана и создана для того, что бы сэкономить ваше время, а, следовательно, и деньги. Так что в любом случае старайтесь использовать SSI в своих проектах, как говорится, на полную катушку.


Источник:  http://web.compdoc.ru
 


NetZona.al.ru Идея, программирование и дизайн: Vasilij E-mail: webmaster20@rambler.ru