SSI使用详解(2)
核心提示:PHP编程,PHP教程,PHP5教程,PHP开发
2.Include命令Include命令可以把其它文档中的文字或图片插进到当前被解析的文档中,是全部SSI的关键所在。通过Include命令只需要改动1个文件便可以够瞬间更新全部站点!
Include命令具有两个不同的参数,假设使用毛病的参数更新站点的话,不但达不到初衷,反而会得到1大堆的毛病信息。
Virtual:给出到服务器端某个文档的虚拟路径。例如:
$#@60;!--#includevirtual="/includes/header.html"--$#@62;
为了更加公道的组织站点的内容,用户可以在根目录下创建includes子目录来寄存所有的包括文件。Virtual参数可以通知服务器所要包括的是1个虚拟文件,即文件和当前被解析的文档不是位于同1个目录,而是寄存在其它目录中。服务器会根据该参数的值找到根目录下的includes子目录。使用这类方法,用户可以把所有HTML文档包括的文件放在1个目录中,而根据相互之间的关系把不同的页面保存在不同的目录或子目录中。不管服务器解析哪1个文档都可以找到所包括的文件,不会产生任何毛病。
不过这里有1个小题目需要解决。1般我们都会在页面中加进1些TITLE和META标签,假设我们规定所有的页面都调用相同的页眉文件的话,就显得很不灵活。用户碰到这样的题目时,可使用两个包括文件,1个设置TITLE标签前的内容,另1个设置META标签后的部份,而在两个包括文件之间则可以添加任何定制内容。例如:
$#@60;!--#includevirtual="/includes/header1.html"--$#@62;
$#@60;TITLE$#@62;YourPageTitle$#@60;/TITLE$#@62;
$#@60;LINKrel=STYLESHEEThref="http://domain.com/styles/my.css"Type="text/css"$#@62;
$#@60;METANAME="Description"CONTENT="Descriptionofpage"$#@62;
$#@60;METANAME="Keywords"CONTENT="keywordsforpage"$#@62;
$#@60;!--#includevirtual="/includes/header2.html"--$#@62;
这里放置页面内容
$#@60;!--#includevirtual="/includes/footer.html"--$#@62;
从上我们可以看出通过在页面中包括页眉和页脚可以大大减少站点更新的工作量。但是假设我们希看动态显示1些内容,例如页面的最后更新时间等该怎样办呢?没题目,我们可以把包括文件使用.html后缀保存,这样便可以够在包括文件中调用其它的包括文件。
File:给?当前目录的相对路径,其中不能使用“../”,也不能使用尽对路径。例如:
$#@60;!--#includefile="header.html"--$#@62;
这就要求每1个目录中都包括1个header.html文件。固然,采取这样的方法其实不比更新每1个页面简单多少,但是假设用户只更新1、两个文件的话还是很方便的。例如,假设我们不希看让1个对HTML不熟习的人直接改动网站中的新闻页面的话,可以只让他更新1个单独的文本文件,然后再把该文件包括到HMTL文档中,这样即不会破坏原页面,同时又更新了内容,两全其美。
3.Echo:
Echo命令可以显示以下各环境变量:
DOCUMENT_NAME:显示当前文档的名称。
$#@60;!--#echovar="DOCUMENT_NAME"--$#@62;
显示结果为:
index.html
DOCUMENT_URI:显示当前文档的虚拟路径。例如:
$#@60;!--#echovar="DOCUMENT_URI"--$#@62;
显示结果为:
/YourDirectory/YourFilename.html
随着网站的不断发展,那些越来越长的URL地址肯定会让人头疼。假设使用SSI,1切就会迎刃而解。由于我们可以把网站的域名和SSI命令结合在1起显示完全的URL,即:
http://YourDomain$#@60;!--#echovar="DOCUMENT_URI"--$#@62;
QUERY_STRING_UNESCAPED:显示未经转义处理的由客户端发送的查询字串,其中所有的特殊字符前面都有转义符“\”。例如:
$#@60;!--#echovar="QUERY_STRING_UNESCAPED"--$#@62;
DATE_LOCAL:显示服务器设定时区的日期和时间。用户可以结合config命令的timefmt参数,定制输出信息。例如:
$#@60;!--#configtimefmt="%A,the%dof%B,intheyear%Y"--$#@62;
$#@60;!--#echovar="DATE_LOCAL"--$#@62;
显示结果为:
Saturday,the15ofApril,intheyear2000
#p#分页标题#e#DATE_GMT:功能与DATE_LOCAL1样,只不过返回的是以格林尼治标准时间为基准的日期。例如:
$#@60;!--#echovar="DATE_GMT"--$#@62;
LAST_MODIFIED:显示当前文档的最后更新时间。一样,这是SSI中非常实玫囊桓龉δ埽?灰?贖TML文档中加进以下这行简单的文字,便可以够在页面上动态的显示更新时间。
$#@60;!--#echovar="LAST_MODIFIED"--$#@62;
CGI环境变量
除SSI环境变量之外,echo命令还可以显示以下CGI环境变量:
SERVER_SOFTWARE:显示服务器软件的名称和版本。例如:
$#@60;!--#echovar="SERVER_SOFTWARE"--$#@62;
SERVER_NAME:显示服务器的主机名称,DNS别名或IP地址。例如:
$#@60;!--#echovar="SERVER_NAME"--$#@62;
SERVER_PROTOCOL:显示客户端要求所使用的协议名称和版本,如HTTP/1.0。例如:
$#@60;!--#echovar="SERVER_PROTOCOL"--$#@62;
SERVER_PORT:显示服务器的响应端口。例如:
$#@60;!--#echovar="SERVER_PORT"--$#@62;
REQUEST_METHOD:显示客户真个文档要求方法,包括GET,HEAD,和POST。例如:
$#@60;!--#echovar="REQUEST_METHOD"--$#@62;
REMOTE_HOST:显示发出要求信息的客户端主机名称。
$#@60;!--#echovar="REMOTE_HOST"--$#@62;
REMOTE_ADDR:显示发出要求信息的客户端IP地址。
$#@60;!--#echovar="REMOTE_ADDR"--$#@62;
AUTH_TYPE:显示用户身份的验证方法。
$#@60;!--#echovar="AUTH_TYPE"--$#@62;
REMOTE_USER:显示访问受保护页面的用户所使用的帐号名称。
$#@60;!--#echovar="REMOTE_USER"--$#@62;
4.Fsize:显示指定文件的大小,可以结合config命令的sizefmt参数定制输出格式。
$#@60;!--#fsizefile="index_working.html"--$#@62;
5.Flastmod:显示指定文件的最后修改日期,可以结合config命令的timefmt参数控制输出格式。
$#@60;!--#configtimefmt="%A,the%dof%B,intheyear%Y"--$#@62;
$#@60;!--#flastmodfile="file.html"--$#@62;
这里,我们可以利用flastmod参数显示出1个页面上所有链接页面的更新日期。方法以下:
$#@60;!--#configtimefmt="%B%d,%Y"--$#@62;
$#@60;AHREF="/directory/file.html"$#@62;File$#@60;/A$#@62;
$#@60;!--#flastmodvirtual="/directory/file.html"--$#@62;
$#@60;AHREF="/another_directory/another_file.html"$#@62;AnotherFile$#@60;/A$#@62;
$#@60;!--#flastmodvirtual="/another_directory/another_file.html"--$#@62;
显示结果为:
FileApril19,2000
AnotherFileJanuary08,2000
或许有的读者会以为两个链接就这么复杂,1点也不方便。实在,假设页面上有20个或更多的链接,而且每个链接都定期更新的话,便可以够看出使用flastmod显示修改日期的作用。
6.Exec
Exec命令可以履行CGI脚本或shell命令。使用方法以下:
Cmd:使用/bin/sh履行指定的字串。假设SSI使用了IncludesNOEXEC选项,则该命令将被屏蔽。
Cgi:可以用来履行CGI脚本。例如,下面这个例子中使用服务端cgi-bin目录下的counter.pl脚本程序在每个页面放置1个计数器:
$#@60;!--#execcgi="/cgi-bin/counter.pl"--$#@62;
唐山网站建设www.fw8.netTAG:参数,文件,命令,文档,页面
评论加载中...
|