21.04.2007, 00:06
общий
это ответ
Здравствуйте, Loed!
Можно также воспользоваться скриптом для вставки фрагментов в HTML-страницу.
Этот скрипт позволит Вам вставлять в страницу содержимое
внешних файлов. Делается это на стороне клиента в браузере. Скрипт предназначен главным образом для тех, у кого на хостинге не разрешены SSI, но "позарез" нужно что-то подобное, или для вставки фрагментов страницы с других серверов. Фрагменты вставляются на страницу как внешние JavaScript-ы, формируемые этим CGI-скриптом из обычных HTML-фрагментов.
Использование скрипта
А. Настройте скрипт, изменяя следующие его переменные (в начале):
$basepath - базовый физический путь Вашего сайта на сервере.
$idxfile - имя файла-индекса Ваших "инклюдов" (по умолчанию - idx.txt).
B. Сформируйте файл-индекс Ваших инклюдов следующим образом:
каждая строчка имеет следующий формат:
(id):::(путь)
Где (id)-идентификатор данного "инклюда", адресуемого полем "путь". (путь)-относительный ФИЗИЧЕСКИЙ путь к файлу "инклюда" на сервере.
Переменная скрипта $basepath введена для удобства, чтобы в каждой строчке файла idx.txt не надо было прописывать полный физический путь. Полный физический путь к данному инклюду образуется складыванием $basepath и пути конкретного инклюда из idx.txt. При этом, если $basepath завершается у Вас слешем, то в параметрах (путь) передний слэш не нужен.
Разместите сформированный файл на сервере.
C. Для вставки "инклюда" с конкретным id в HTML-страницу вызывайте скрипт следующим образом:
<B><SCRIPT SRC="/cgi-bin/ssi.cgi?id=ID">
</SCRIPT></B>
где ID - id кокретного инклюда, который нужно вставить в данное
место страницы.
3. Если при работе скрипта произошла ошибка (невозможно найти файл и т.п.), то вместо файла в страницу вставится сообщение об ошибке (сделаны на английском языке, чтобы в любой кодировке были удобочитаемы):
[Insert Error - no such index] - в файле-индексе такого инклюда с таким индексом нет.
[Insert Error - file not found] - не удается найти нужный файл.
Ну и наконец сам пример скрипта (в приложении).
Успехов!
Приложение:
################### Файл ssi.cgi ###################$basepath="/usr/home/user/public_html/"; # Базовый физический путь к Вашему сайту на сервере$idfile="idx.txt"; # Файл-индекс$query=$ENV{‘QUERY_STRING‘};foreach $item(split(/&/,$query)) { ($name,$value)=split (/=/,$item); $value=~tr/+/ /; $value=~ s/%(..)/pack("c",hex($1))/ge; $PARAM{$name}=$value;};open IDX,"idx.txt";@ids=<IDX>;close IDX;foreach $itm(@ids) {chomp $itm;($id,$uri)=split (":::",$itm);$FN{$id}=$uri;}$r=$PARAM{‘id‘};if ($r ne ""){ $fullpath=$basepath.$FN{$r};if (-e $fullpath){open INC,$fullpath;@lines=<INC>;close INC;}else {@lines=("[Insert Error - file not found]")};}else {@lines=("[Insert error - no such index]")};print "Content-Type: text/javascript\n\n";foreach $itm(@lines){chomp $itm;$itm=~s/"/\"/g;$itm=~s/\‘/\\‘/g;$itm=~s/\xFF/\\\xFF/g;print "document.write(‘$itm‘);\n";