2.Include命令

Include命令可以把其它文档中的文字或图片插入到当前被解析的文档中,是整个SSI的关键所在。通过Include命令只需要改动一个文件就可以瞬间更新整个站点!

Include命令具有两个不同的参数,如果使用错误的参数更新站点的话,不仅达不到初衷,反而会得到一大堆的错误信息。

Virtual:给出到服务器端某个文档的虚拟路径。例如:

$#@60;!--#include virtual="/includes/header.html" --$#@62;

为了更加合理的组织站点的内容,用户可以在根目录下创建includes子目录来存放所有的包含文件。Virtual参数可以通知服务器所要包含的是一个虚拟文件,即文件和当前被解析的文档不是位于同一个目录,而是存放在其它目录中。服务器会根据该参数的值找到根目录下的includes子目录。使用这种方法,用户可以把所有HTML文档包含的文件放在一个目录中,而根据相互之间的关系把不同的页面保存在不同的目录或子目录中。无论服务器解析哪一个文档都可以找到所包含的文件,不会产生任何错误。

不过这里有一个小问题需要解决。一般我们都会在页面中加入一些TITLE和META标签,如果我们规定所有的页面都调用相同的页眉文件的话,就显得很不灵活。用户碰到这样的问题时,可以使用两个包含文件,一个设置TITLE标签前的内容,另一个设置META标签后的部分,而在两个包含文件之间则可以添加任何定制内容。例如:

$#@60;!--#include virtual="/includes/header1.html" --$#@62;

$#@60;TITLE$#@62;Your Page Title$#@60;/TITLE$#@62;

$#@60;LINK rel = STYLESHEET href = "http://domain.com/styles/my.css" Type = "text/css" $#@62;

$#@60;META NAME = "Description" CONTENT = " Description of page"$#@62;

$#@60;META NAME = "Keywords" CONTENT = "keywords for page" $#@62;

$#@60;!--#include virtual="/includes/header2.html" --$#@62;

这里放置页面内容

$#@60;!--#include virtual="/includes/footer.html" --$#@62;

从上我们可以看出通过在页面中包含页眉和页脚可以大大减少站点更新的工作量。但是如果我们希望动态显示一些内容,例如页面的最后更新时间等该怎么办呢?没问题,我们可以把包含文件使用.html后缀保存,这样就可以在包含文件中调用其它的包含文件。

File:给? 当前目录的相对路径,其中不能使用“../”,也不能使用绝对路径。例如:

$#@60;!--#include file="header.html" --$#@62;

这就要求每一个目录中都包含一个header.html文件。当然,采用这样的方法并不比更新每一个页面简单多少,但是如果用户只更新一、两个文件的话还是很方便的。例如,如果我们不希望让一个对HTML不熟悉的人直接改动网站中的新闻页面的话,可以只让他更新一个单独的文本文件,然后再把该文件包含到HMTL文档中,这样即不会破坏原页面,同时又更新了内容,两全其美。

3.Echo:

Echo命令可以显示以下各环境变量:

DOCUMENT_NAME:显示当前文档的名称。

$#@60;!--#echo var="DOCUMENT_NAME" --$#@62;

显示结果为:

index.html

DOCUMENT_URI:显示当前文档的虚拟路径。例如:

$#@60;!--#echo var="DOCUMENT_URI" --$#@62;

显示结果为:

/YourDirectory/YourFilename.html

随着网站的不断发展,那些越来越长的URL地址肯定会让人头疼。如果使用SSI,一切就会迎刃而解。因为我们可以把网站的域名和SSI命令结合在一起显示完整的URL,即:

http://YourDomain$#@60;!--#echo var="DOCUMENT_URI" --$#@62;

QUERY_STRING_UNESCAPED:显示未经转义处理的由客户端发送的查询字串,其中所有的特殊字符前面都有转义符“”。例如:

$#@60;!--#echo var="QUERY_STRING_UNESCAPED" --$#@62;

DATE_LOCAL:显示服务器设定时区的日期和时间。用户可以结合config命令的timefmt参数,定制输出信息。例如:

$#@60;!--#config timefmt="%A, the %d of %B, in the year %Y" --$#@62;

$#@60;!--#echo var="DATE_LOCAL" --$#@62;

显示结果为:

Saturday, the 15 of April, in the year 2000

本新闻共2页,当前在第1页 1 2

DATE_GMT:功能与DATE_LOCAL一样,只不过返回的是以格林尼治标准时间为基准的日期。例如:

$#@60;!--#echo var="DATE_GMT" --$#@62;

LAST_MODIFIED:显示当前文档的最后更新时间。同样,这是SSI中非常实玫囊桓龉δ埽灰贖TML文档中加入以下这行简单的文字,就可以在页面上动态的显示更新时间。

$#@60;!--#echo var="LAST_MODIFIED" --$#@62;

CGI环境变量

除了SSI环境变量之外,echo命令还可以显示以下CGI环境变量:

SERVER_SOFTWARE:显示服务器软件的名称和版本。例如:

$#@60;!--#echo var="SERVER_SOFTWARE" --$#@62;

SERVER_NAME: 显示服务器的主机名称,DNS别名或IP地址。例如:

$#@60;!--#echo var="SERVER_NAME" --$#@62;

SERVER_PROTOCOL:显示客户端请求所使用的协议名称和版本,如HTTP/1.0。例如:

$#@60;!--#echo var="SERVER_PROTOCOL" --$#@62;

SERVER_PORT:显示服务器的响应端口。例如:

$#@60;!--#echo var="SERVER_PORT" --$#@62;

REQUEST_METHOD:显示客户端的文档请求方法,包括GET, HEAD, 和POST。例如:

$#@60;!--#echo var="REQUEST_METHOD" --$#@62;

REMOTE_HOST:显示发出请求信息的客户端主机名称。

$#@60;!--#echo var="REMOTE_HOST" --$#@62;

REMOTE_ADDR:显示发出请求信息的客户端IP地址。

$#@60;!--#echo var="REMOTE_ADDR" --$#@62;

AUTH_TYPE:显示用户身份的验证方法。

$#@60;!--#echo var="AUTH_TYPE" --$#@62;

REMOTE_USER:显示访问受保护页面的用户所使用的帐号名称。

$#@60;!--#echo var="REMOTE_USER" --$#@62;

4.Fsize:显示指定文件的大小,可以结合config命令的sizefmt参数定制输出格式。

$#@60;!--#fsize file="index_working.html" --$#@62;

5.Flastmod:显示指定文件的最后修改日期,可以结合config 命令的timefmt参数控制输出格式。

$#@60;!--#config timefmt="%A, the %d of %B, in the year %Y" --$#@62;

$#@60;!--#flastmod file="file.html" --$#@62;

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

$#@60;!--#config timefmt=" %B %d, %Y" --$#@62;

$#@60;A HREF="/directory/file.html"$#@62;File$#@60;/A$#@62;

$#@60;!--#flastmod virtual="/directory/file.html" --$#@62;

$#@60;A HREF="/another_directory/another_file.html"$#@62;Another File$#@60;/A$#@62;

$#@60;!--#flastmod virtual="/another_directory/another_file.html" --$#@62;

显示结果为:

File April 19, 2000

Another File January 08, 2000

也许有的读者会认为两个链接就这么复杂,一点也不方便。其实,如果页面上有20个或者更多的链接,而且每个链接都定期更新的话,就可以看出使用flastmod显示修改日期的作用。

6.Exec

Exec命令可以执行CGI脚本或者shell命令。使用方法如下:

Cmd:使用/bin/sh执行指定的字串。如果SSI使用了IncludesNOEXEC选项,则该命令将被屏蔽。

Cgi:可以用来执行CGI脚本。例如,下面这个例子中使用服务端cgi-bin目录下的counter.pl脚本程序在每个页面放置一个计数器:

$#@60;!--#exec cgi="/cgi-bin/counter.pl" --$#@62;

本新闻共2页,当前在第2页 1 2

http://www.bkjia.com/PHPjc/532650.htmlwww.bkjia.comtruehttp://www.bkjia.com/PHPjc/532650.htmlTechArticle2.Include命令 Include命令可以把其它文档中的文字或图片插入到当前被解析的文档中,是整个SSI的关键所在。通过Include命令只需要改动一个文...

ssi 指令 php,SSI使用详解(二)_PHP教程相关推荐

  1. ssi 指令 php,SSI使用详解(一)_php

    综述 SSI是英文Server Side Includes的缩写,翻译成中文就是服务器端包含的意思.从技术角度上说,SSI就是在html文件中,可以通过注释行调用的命令或指针.SSI具有强大的功能,只 ...

  2. OS--进程间通信详解(二)

    OS–进程间通信详解(二) 文章目录 OS--进程间通信详解(二) 一.进程间通信 1.互斥量 Futexes Pthreads中的互斥量 2.管程 3.消息传递 消息传递系统的设计要点 用消息传递解 ...

  3. 欧盟包装指令94/62/EC详解

    欧盟包装指令94/62/EC详解 欧盟包装指令94/62/EC详解,欧盟包装和废弃包装物指令对包装材料进行管制,主要原因在于包装材料常在使用过后,被消费者任意地丢弃至环境土壤中,其中所含的危害物质将会 ...

  4. 安卓 linux init.rc,[原创]Android init.rc文件解析过程详解(二)

    Android init.rc文件解析过程详解(二) 3.parse_new_section代码如下: void parse_new_section(struct parse_state *state ...

  5. [转]文件IO详解(二)---文件描述符(fd)和inode号的关系

    原文:https://www.cnblogs.com/frank-yxs/p/5925563.html 文件IO详解(二)---文件描述符(fd)和inode号的关系 ---------------- ...

  6. PopUpWindow使用详解(二)——进阶及答疑

    相关文章: 1.<PopUpWindow使用详解(一)--基本使用> 2.<PopUpWindow使用详解(二)--进阶及答疑> 上篇为大家基本讲述了有关PopupWindow ...

  7. Android init.rc文件解析过程详解(二)

    Android init.rc文件解析过程详解(二) 3.parse_new_section代码如下: void parse_new_section(struct parse_state *state ...

  8. linux 进程间通信 dbus-glib【实例】详解二(下) 消息和消息总线(ListActivatableNames和服务器的自动启动)(附代码)

    linux 进程间通信 dbus-glib[实例]详解一(附代码)(d-feet工具使用) linux 进程间通信 dbus-glib[实例]详解二(上) 消息和消息总线(附代码) linux 进程间 ...

  9. linux 进程间通信 dbus-glib【实例】详解二(上) 消息和消息总线(附代码)

    linux 进程间通信 dbus-glib[实例]详解一(附代码)(d-feet工具使用) linux 进程间通信 dbus-glib[实例]详解二(上) 消息和消息总线(附代码) linux 进程间 ...

  10. Android Gradle 自定义Task详解二:进阶

    转载请标明出处:http://blog.csdn.net/zhaoyanjun6/article/details/78523958 本文出自[赵彦军的博客] 系列目录 Android Gradle使用 ...

最新文章

  1. MySQL5.7的date类型_Mysql5.7 虚拟列数据类型为DATE时,如何存入数据?
  2. centos共享linux文件夹权限,CENTOS7 搭建文件服务器:samba共享linux文件夹
  3. 理解并使用ASP.NET的高级配置
  4. 甜蜜助攻!情侣之间,到底能有多甜甜甜甜甜甜甜甜
  5. CodeIgniter URL添加后缀
  6. 【Siddhi】Flink Siddhi自定义函数
  7. sccm2012 客户端推送安装故障解决一例
  8. POJ3274 Gold Balanced Lineup【Hash函数】
  9. go语言报错:main redeclared in this block
  10. html+css美化后台登录界面
  11. 计算机电路基础 - 1,计算机电路基础1.1(4页)-原创力文档
  12. perl和bugzilla
  13. excel自动求和_如何在excel表格中求和 excel求和怎么操作
  14. 《神奇的数学》读后感_《奇妙的数学王国》读后感 300字
  15. c++ 字符串去掉首尾空格_C++ 去掉字符串的首尾空格和全部空格
  16. Windows 10,Server 2019 通过cobbler 实现批量自动化安装
  17. php 下载的文件损坏,PHP readfile()导致文件下载损坏
  18. 登录微信支付商户平台-产品中心,开通企业付款的方法
  19. Java多个文件根据URL下载后打包zip导出
  20. 成都百知教育:前4月阿拉山口口岸出口跨境电商包同比增长307%

热门文章

  1. ORA-02396:超出最大空闲时间,请重新连接!
  2. 设计模式原则 - 接口隔离原则(二)
  3. 服务器上引用不了js文件,pdf.js不通过服务器如何像普通js文件引入使用
  4. 用WinDbg分析电脑蓝屏文件
  5. MHA与PXC的区别
  6. wps思维导图聚焦模式是灰色不能用的解决方案
  7. 构建“未来级”企业,如何做对这道必答题
  8. 夜光:武汉加油,中国加油
  9. 大学计算机数学基础2,计算机数学基础-中国大学mooc-题库零氪
  10. c语言 青蛙上台阶问题