Rambler's Top100 Старый русский почтовик! Оплата в WM! Самый активный, самый надежный!
Рыболовные туры в Финляндию
Рыбалка в Финляндии
с русскоговорящим гидом!
SEO sprint - Всё для максимальной раскрутки!
Форум русских рыболовов Финляндии

Рыбалка в Финляндии


главная
SSI
примеры

SSI - Server Side Includes - включения на стороне сервера.

   Вначале немного о том, что такое SSI. Server Side Includes - включения на стороне сервера - это набор команд, позволяющих включить в страницу информацию, недоступную средствами HTML, формировать документ из заранее определенных кусочков, вставлять результаты работы CGI сценария или программы прямо в документ. Несмотря на довольно ограниченный набор команд, SSI - это очень мощный инструмент, дающий большие возможности при создании сайта. В этой статье я расскажу о некоторых из них. Но вначале немного о том, как это работает.
   Как следует из названия - включения на стороне сервера - команды SSI выполняются сервером. Сразу нужно сказать, что не все серверы поддерживают SSI. В особенности, предоставляющие бесплатный хостинг. Например, не поддерживает SSI горячо любимый нами "народ". Справедливости ради добавлю, что "народ" является единственным из известных мне серверов, которые НЕ поддерживают SSI.
   Сервер, поддерживающий SSI, перед тем как выдать документ по Вашему запросу, проверяет его на наличие в нем команд SSI. Некоторые серверы проверяют все документы, большинство - только имеющие расширение shtm или shtml. Это зависит от настроек сервера и, чтобы не вдаваться в подробности, скажу, что если Вы хотите использовать SSI, лучше сразу присваивайте файлам расширение shtml. Встречая в обрабатываемом документе команду SSI, сервер выполняет ее, те есть вставляет в документ то, что предписывает команда. Для пользователя, просматривающего сайт, это происходит абсолютно незаметно, к нему страница попадает уже в готовом виде. Поэтому Вы никогда не обнаружите следов SSI, например, просматривая сайт в "виде HTML".
   Есть небольшая трудность в работе с SSI при создании сайта на домашнем компьютере: не устанавливая специального программного обеспечения, Вы не сможете посмотреть страничку в том виде, как она будет выглядеть в сети до тех пор, пока не отправите ее на сервер.
   Вот такое коротенькое теоретическое вступление. А теперь - несколько практических примеров.
   Примечание: как и все статьи этого сайта, эта статья - отнюдь не полное описание темы. Ее цель - дать понятие о предмете разговора, рассказать, что такая вещь существует. Для полного описания любой из тем, затронутых в статьях на этом сайте, потребуется довольно приличное время.
   Команды SSI включаются в HTML документ в виде комментариев. Для того, чтобы сервер знал, что это директива SSI, а не простой комментарий, после знака комментария ставится знак #. В общем виде команда SSI записывается так:
<!--#SSI-директива="параметры" -->
Заметьте одну важную деталь: начало команды, а именно: знак комментария и знак команды SSI пишутся слитно, без пробела: <!--#SSI-директива...
   Так вот, о примерах...
   Например, Вы наверняка видели, что на некоторых сайтах или страницах указано текущее время, или дата, или и то, и другое. Приблизительно так:
Сегодня
23.06.2017
Сейчас в Москве:
02:50:57
   Сразу обращаю внимание, что часы в этом случае будут "стоять", то есть, они будут показывать время, когда Вы зашли на данную страничку, а вернее - время выполнения команды SSI.
   Еще раз напомню также, что , если Вы посмотрите эту страницу "в виде ХТМЛ", то увидите лишь результат работы команды, то есть только то, что уже видите в окне браузера: дату и время. На самом деле в файле, который я отправил на сервер, в этом месте в ячейках таблицы стоит:
  • В первой ячейке:
    <B>Сегодня</B><BR><!--#config timefmt="%d.%m.%Y" --><!--#echo var="DATE_LOCAL" -->
  • и во второй ячейке:
    <B>Сейчас в Москве:</B><BR><!--#config timefmt="%H:%M:%S" --><!--#echo var="DATE_LOCAL" -->
   Значения тегов B и BR Вам уже должно быть знакомо (а если Вы еще не знаете, что это такое, почитайте внимательнее другие статьи моего сайта :-), поэтому я обьясню только то, что относится к SSI:
  • команда echo - "вывести, напечатать"
  • параметр команды var= - "переменная"
  • значение переменной "DATE_LOCAL" - "локальное время"
То есть строкой <!--#echo var="DATE_LOCAL" --> я прошу сервер: "Ну-ка, дорогой, выведи посетителям моего сайта на экран в этом месте время, которое показывают твои часы". И он Вам это показывает. Самые внимательные уже, наверно, обратили внимание, что просьба в обоих ячейках таблицы одинаковая, а результат сервер нам выдал разный: в одном случае время, а в другом - дату. А самые сообразительные уже даже сообразили, что это оттого, что перед командой <!--#echo var="DATE_LOCAL" --> стоит еще какая-то абракадабра и она в разных ячейках - разная. Вот в том-то все и дело. Перед тем, как спросить у сервера время, необходимо сообщить ему, что конкретно мы хотим увидеть. Самому серверу до лампочки наше чисто условное деление времени на секунды, годы, века и тысячелетия. Чтобы не путаться, он использует для отсчета времени только одну единицу (тоже, конечно, очень условную) - секунду. Но по нашей просьбе может показать нам значение своих внутренних часов в удобочитаемой для нас форме. Так вот:
  • команда config - "конфигурировать" или "показать в форме"
  • параметр timefmt= - "формат времени"
  • значение параметра timefmt=
   Для конфигурации формы вывода времени существует куча значений. Все они приведены в нижеследующей таблице:
Формат
Описание
Пример
Формат
Описание
Пример
%a Аббревиатура названия дня недели Sun %Z Временная зона MSK
%A Полное название дня недели Sunday %Y Год в формате ГГГГ 1995
%b Аббревиатура названия месяца Jan %y Год в формате ГГ 95
%B Полное название месяца January %w Номер дня недели 5
%d День месяца 01 (не 1) %U Неделя года 49
%D Дата в формате "%m/%d/%y" 01/31/90 %T Время в формате "%H:%M:%S" 14:05:34
%e День месяца 1 %s Время в секундах с 01.01.1970 957228726
%H Часы в 24-часовом формате 13 %S Секунды 34
%I Часы в 12-часовом формате 01 %j День года 235
%m Номер месяца 01 %u Время в формате "%I:%M:%S%p" 01:33:56 PM
%M Минуты 03 %p AM|PM AM

При желании Вы можете попросить показать не локальное время сервера, а время на меридиане Гринвича:
Сейчас в Лондоне:
23:50:57

   Это случится, если вместо DATE_LOCAL поставить DATE_GMT.
   Еще пара маленьких примеров использования SSI:
  • Команда, выводящая IP посетителя:
    <!--#echo var="REMOTE_ADDR"-->
    В результате использования получаем:
    Ваш IP:
    107.22.46.150
  • Команда, выводящая тип браузера посетителя:
    <!--#echo var="HTTP_USER_AGENT"-->
    В результате использования получаем:
    Ваш браузер:
    CCBot/2.0 (http://commoncrawl.org/faq/)
   Ну вот, на первый раз хватит. В следующей статье я уж точно расскажу, как с помощью SSI можно значительно уменьшить обьем работы при создании сайта.

Создать свой сайт


Рейтинг@Mail.ru liveinternet.ru: показано число посетителей за сегодня


Copyright © 2001 by Сергей Червонящий.
Все права защищены. Запрещено частичное или полное воспроизведение материалов сайта без согласования с автором.

Покупайте на OHO.ru:
Покупайте на OHO.ru: