В прошлом шаге я описал достаточно полезные функции SSI, но эти оставил на потом, так как считаю их более важными.
Для указания файла используются параметры file и virtual. Они аналогичны параметрам команды fsize и flastmod, поэтому не буду на них останавливаться.
Именно эта команда может вам помочь при решении той проблемы с почтовым адресом на вашем сайте. Кстати рекомендую вам пользоваться ей, если ваш сайт без фреймов, т.е. просто в виде таблицы. Тогда вам не придется сотни раз копировать содержимое столбика с кнопками, и естественно позволит безболезненно добавлять новые кнопки.
Пример:
<!--#include file="toptable.inc" -->
Эта команда запускает программу или скрипт CGI, и вставляет результат выполнения этой команды.
Параметр cgi содержит путь до программы, которую требуется выполнить. Она будет действовать только если в настройках вашего сервера установлен параметр ScriptAlias и в файле .htaccess указана настройка Options ExecCGI.
Альтернативой параметру exec является cmd. Он выполняет указанную команду посредством /bin/sh (но это для юникса, а для виндов наверно через command.com :-).
<!--#exec cgi="param.cgi" --> <!--#exec cmd="kill -TERM 123" -->
Структура очень простая:
<!--#if expr="условие_1" --> <!--#elif expr="условие_2" --> <!--#else --> <!--#endif -->Принцип работы такой: если условие_1 истинно, то вставляется текст следующий за этой командой до появления команд elif,else или endif. Команды elif и else выполняются, если первое условие оказалось ложным.
Команда endif должна обязательно заканчивать условный блок if.
В качестве условий могут выступать сравнения строк:
строкаусловие принимает значение "истина", если строка не пустая
строка1 = строка2 строка1 != строка2 строка1 < строка2 строка1 <= строка2 строка1 > строка2 строка1 >= строка2Здесь сравниваются две строки. Условие принимает результат сравнения. Например:
A < Zусловие примет значение "истина".
В качестве условия можно использовать несколько условий связанных логическими операциями.
!_условие_! - отрицание условия. Принимает значение "истина", если _условие_ ложно.
условие_1 && условие_2Принимает значение "истина", если оба условия истинны одновременно.
условие_1 || условие_2Принимает значение "истина", если какое-нибудь из условий истинно.
условие_1 != условие_2 условие_1 = условие_2Операции "="(равно) и "!="(не равно) сравнивают два условия на эквивалентность.
Приоритет операций такой:
! - наивысший приоритет =,!= &&,|| - низкийПервыми выполняются операции имеющие высший приоритет.
Ну и пример использования:
<!--#config timefmt="%Y %j" --> <!--#if expr="\"$DATE_LOCAL\" = \"2000 01\"" --> <p>С новым 2000 годом !!! УРА !!! <!--#else --> <p>До нового года еще далеко... <!--#endif -->Хотелось поговорить о задании условий. Для того, чтобы подставить в условие значение переменной установленное командой set, необходимо перед именем переменной поставить знак доллара "$".
$REMOTE_HOSTВ этом случае подставится значение переменной REMOTE_HOST.
Для правильного сравнения сложных строк(содержащих пробелы) их необходимо заключить в двойные кавычки ("), но так как само условие тоже находится в кавычках, то надо перед кавычками внутри условия ставить обратный слэш (\).
<!--#if expr="\"$name\"=\"Вася Пупкин\"" -->В результате таких преобразований будут сравниваться строки (name="Илья Муромец")
"Илья Муромец"="Вася Пупкин"А не
Муромец=ВасяЭто очень важно !!! Неправильное условие может привести к ошибке сравнения и команда не будет обработана...
Технология SSI позволит вам создавать меняющиеся странички. Используйте ее для оформления в отдельные файлы общих кусков страниц сайта. Это позволит вам не задумываться об их содержании, а сконцентрированть свое внимание на основной части.
Пример:
<!--#include file="top.inc" --> Это основное содержание страницы. <!--#include file="bottom.inc" -->Содержание top.inc
<html> <head> <meta http-equiv="Content-Type" content="text/html; charset=koi8-r"> <meta name="description" content="МОЯ классная страничка !!!"> </head> <body text=black bgcolor=white link=blue vlink=blue alink=red>Файл bottom.inc
</body> </html>
Все с SSI мы полностью разобрались...