查看完整版本: shtml网页SSI使用详解

snowfox373 2007-11-27 16:18

shtml网页SSI使用详解

shtml使用SSI(Server Side Include)的html文件扩展名,SSI(Server Side Include),通常称为"服务器端嵌入"或者叫"服务器端包含",是一种类似于ASP的基于服务器的网页制作技术。`"@.jkM#y9n
^;QNKooG;f
      1、Config命令
3JHR#J Jj ?"ox2}I%R\@
  Config命令主要用于修改SSI的默认设置。其中: e2~ B}2QIZ {
(pY3z0D8T#t3is
  Errmsg:设置默认错误信息。为了能够正常的返回用户设定的错误信息,在HTML文件中Errmsg参数必须被放置在其它SSI命令的前面,否则客户端只能显示默认的错误信息,而不是由用户设定的自定义信息。
;rQ(@`4KQL0| SN
$xP7r5`%Oi[9G b   <!--#config errmsg="Error! Please email [email]webmaster@web.com[/email] -->  
?\*JeN
&ih2AI`   Timefmt:定义日期和时间的使用格式。Timefmt参数必须在echo命令之前使用。[code]<!--#config timefmt="%A, %B %d, %Y"--> 4T%PH7uG+L0RZc
  <!--#echo var="LAST_MODIFIED" -->[/code]显示结果为:
X5u#[*?C"}ovs'H p6@SF1h
    Wednesday, April 12, 2007  
]7sQiyO%y
,M9Uf4Z`s   也许用户对上例中所使用的%A %B %d感到很陌生,下面我们就以表格的形式总结一下SSI中较为常用的一些日期和时间格式。
6WE u!C0n0dx'bX B !|)vQJ3c?dl'EG-Nu
  Sizefmt:决定文件大小是以字节、千字节还是兆字节为单位表示。如果以字节为单位,参数值为"bytes";对于千字节和兆字节可以使用缩写形式。同样,sizefmt参数必须放在fsize命令的前面才能使用。[code] <!--#config sizefmt="bytes" --> #Wy N,c(H
    <!--#fsize file="index.html" --> [/code]2、Include命令 N9_nj7T&rH9G

]Tfz0\2} c   Include命令可以把其它文档中的文字或图片插入到当前被解析的文档中,这是整个SSI的关键所在。通过Include命令只需要改动一个文件就可以瞬间更新整个站点! xH(@?6{e6y
~"a{x/jJ4R
  Include命令具有两个不同的参数:
.WXH9iV.a nK N9?-_1bn
  Virtual:给出到服务器端某个文档的虚拟路径。例如: ;s!X Z\W/~4u-Q|j.d&f

%m3n;F4tE_%GM3v     <!--#include virtual="/includes/header.html" -->  n:@R&eJ;QjR
Txps J
  File:给出到当前目录的相对路径,其中不能使用"../",也不能使用绝对路径。例如:
Y's[&M!H)r(G)RW5w1} 1U+n/`.W l p
    <!--#include file="header.html" --> 6doqt y2x]

CK"t/L b7T(LuYh   这就要求每一个目录中都包含一个header.html文件。
,~Q(N9Zh_9p
Ue,jmx%U   3、Echo命令
*F5i"P5Z1YL2[#`
cHjx;M v QRR   Echo命令可以显示以下各环境变量:`3fG[ G

;U/~ f^-C1exn0P1D J   DOCUMENT_NAME:显示当前文档的名称。
h5{F+I5A]&R z Yrj w [
    <!--#echo var="DOCUMENT_NAME" -->
f ~}lm }5}+~ )tqzM%\#lx|kU"M:mK
      显示结果为:O/cf5tw-\9KuK+S|

Fxr^7V C     index.html
k C)q+m6B 3c-lVi Gea
  DOCUMENT_URI:显示当前文档的虚拟路径。例如:
IH!H oMQ&N]
k.[!k#v8E\B     <!--#echo var="DOCUMENT_URI" --> I;RcI)B H2]+N5Ny
P\1Z+GP&h)Suf_
  显示结果为: us1{0IWsM
Z} xO }'rAm$X
    /YourDirectory/YourFilename.html   n#V+v5{5R~!~,q

6Tz d c[ D)KL/D   随着网站的不断发展,那些越来越长的URL地址肯定会让人头疼。如果使用SSI,一切就会迎刃而解。因为我们可以把网站的域名和SSI命令结合在一起显示完整的URL,即:
%o dKy(sh9tA ]O2C
:A1N&T'v!i8L{ c   http://YourDomain<!--#echo var="DOCUMENT_URI" -->  
v)@Y?F6A`+J s+l:`4kq
  QUERY_STRING_UNESCAPED:显示未经转义处理的由客户端发送的查询字串,其中所有的特殊字符前面都有转义符"\"。例如:
0?:k+ox*r
xK!nsgrxV \   <!--#echo var="QUERY_STRING_UNESCAPED" --> +S*ZE)q C"a
#m&t^&us]'o
  DATE_LOCAL:显示服务器设定时区的日期和时间。用户可以结合config命令的timefmt参数,定制输出信息。例如: 1Q? z8C!?%N
+^I*fb$ST&\+T-C
  <!--#config timefmt="%A, the %d of %B, in the year %Y" -->
p([#k})v C.u A!h \/l     <!--#echo var="DATE_LOCAL" --> 9t6Wni1P}Y
t)[ X9j m
  显示结果为:
i@A&~0A` .mxj:vM
  Saturday, the 15 of April, in the year 2007 /v!VM!y%w ]J?`

&C8q2IP Ln0\   DATE_GMT:功能与DATE_LOCAL一样,只不过返回的是以格林尼治标准时间为基准的日期。例如: X^!?hVs7p X
4dCr a5oS;o5F
  <!--#echo var="DATE_GMT" -->
;j*? K$P6M)E
.{+rEB]+PQ M   LAST_MODIFIED:显示当前文档的最后更新时间。同样,这是SSI中非常实用的一个功能,只要在HTML文档中加入以下这行简单的文字,就可以在页面上动态的显示更新时间。
!b Aeb&w"TD
@ r~#Z?e D   <!--#echo var="LAST_MODIFIED" --> 5G(yqO(d
"lJ7R].Y^
  CGI环境变量
#Vw}] Q f
u.|?&K2G~OJ$Sx   除了SSI环境变量之外,echo命令还可以显示以下CGI环境变量: 1[([n3XA+hK`)m

(^3IP*sWs#P     SERVER_SOFTWARE:显示服务器软件的名称和版本。例如:7A"m'E%U4Bm/U5vi:J
    <!--#echo var="SERVER_SOFTWARE" -->
hI.L(I3\;E Mnc*d |     SERVER_NAME: 显示服务器的主机名称,DNS别名或IP地址。例如:'X7zZ/I^bD(Qi
    <!--#echo var="SERVER_NAME" -->4dtZ*~&R&Ej dw:_
    SERVER_PROTOCOL:显示客户端请求所使用的协议名称和版本,如HTTP/1.0。例如:
Vh7M]5q&t8w     <!--#echo var="SERVER_PROTOCOL" -->
:y6p&@;Aa#l     SERVER_PORT:显示服务器的响应端口。例如:
P:a)v!Y5D9z#T?'_m     <!--#echo var="SERVER_PORT" -->!\%{;l#t7GnF)l
    REQUEST_METHOD:显示客户端的文档请求方法,包括GET, HEAD, 和POST。例如:#k/jWN\ z!z"K4^
    <!--#echo var="REQUEST_METHOD" -->.v%H}:G1p&Eh
    REMOTE_HOST:显示发出请求信息的客户端主机名称。 M'z"G'O?f
    <!--#echo var="REMOTE_HOST" -->gr R+R7s e U h
    REMOTE_ADDR:显示发出请求信息的客户端IP地址。
'KI1xJ AOh     <!--#echo var="REMOTE_ADDR" -->
]e Mnqb     AUTH_TYPE:显示用户身份的验证方法。 C0V \qJ(n
    <!--#echo var="AUTH_TYPE" -->v0?k5L6\'vK
    REMOTE_USER:显示访问受保护页面的用户所使用的帐号名称。
g u8l0h6A5W     <!--#echo var="REMOTE_USER" --> )W}@sUT1In8KP5H
-~c d;kx'Y
      4、Fsize:显示指定文件的大小,可以结合config命令的sizefmt参数定制输出格式。 S \rV8}B4]
W0bIn#t(_
    <!--#fsize file="index_working.html" -->
1q~|Nuv
2VY/^ y"U t%I0q)s   5、Flastmod:显示指定文件的最后修改日期,可以结合config 命令的timefmt参数控制输出格式。 4c;r&^R ^i,U(r2G

+{u'WyEL1@S     <!--#config timefmt="%A, the %d of %B, in the year %Y" -->
vT_ aj]     <!--#flastmod file="file.html" --> !~5j%_'C~ A+I$}a

WEP,GVoU%y2B   这里,我们可以利用flastmod参数显示出一个页面上所有链接页面的更新日期。方法如下: OSnN U n

nVXJtKY)b     <!--#config timefmt=" %B %d, %Y" -->
0h4k&L#k ue/n     <A HREF="/directory/file.html">File</A>
#UN'q)|(Q]6z&i.|     <!--#flastmod virtual="/directory/file.html" -->_k6B6A2v,i$S3C
    <A HREF="/another_directory/another_file.html">Another File</A>
b(GYm:w9xB3r$K     <!--#flastmod virtual="/another_directory/another_file.html" -->
\ c ?r?c?7n -l4^2^4uT8^&tb
  显示结果为:l&Qfk g"On

xr ^n-j i!CX"tk     File April 19, 2007d"l.E;\!k8R
    Another File January 08, 2007  
9F'~] u4~%q Z II*CV1ZY6t)r1L
  6、Exec
.A*zBz3x M ;FDt4A,X6x,L u!E
  Exec命令可以执行CGI脚本或者shell命令。使用方法如下:
&x"@b`1j
7C0~)Kx+~l!`    Cmd:使用/bin/sh执行指定的字串。如果SSI使用了IncludesNOEXEC选项,则该命令将被屏蔽。 %WD lwt;t^
'e%?A O%H {3Lg:|F
   Cgi:可以用来执行CGI脚本。例如,下面这个例子中使用服务端cgi-bin目录下的counter.pl脚本程序在每个页面放置一个计数器: N!?f-J%JU4u8S i;pN
'Ze"k6JOBc/S/hR)q
   <!--#exec cgi="/cgi-bin/counter.pl" -->
页: [1]
查看完整版本: shtml网页SSI使用详解