ssi的一些概念和指令

2021-04-19 10:12:07 字數 3339 閱讀 1802

什麼是shtml呢?

使用ssi(server side include)的html副檔名,ssi(serversideinclude),通常稱為"伺服器端嵌入"或者叫"伺服器端包含",是一種類似於asp的基於伺服器的網頁製作技術。預設副檔名是.stm、.shtm 和 .shtml。

什麼是ssi?

ssi是英文server sideincludes的縮寫,翻譯成中文就是伺服器端包含的意思。從技術角度上說,ssi就是在html檔案中,可以通過注釋行呼叫的命令或指標。 ssi具有強大的功能,只要使用一條簡單的ssi命令就可以實現整個**的內容更新,時間和日期的動態顯示,以及執行shell和cgi指令碼程式等複雜的功能。**維護常常碰到的乙個問題是,**的結構已經固定,卻為了更新一點內容而不得不重做一大批網頁。ssi提供了一種簡單、有效的方法來解決這一問題,它將乙個**的基本結構放在幾個簡單的html檔案中(模板),以後我們要做的只是將文字傳到伺服器,讓程式按照模板自動生成網頁,從而使管理大型**變得容易。

ssi有什麼用?

ssi是為web伺服器提供的一套命令,這些命令只要直接嵌入到html文件的注釋內容之中即可。如:

就是一條ssi指令,其作用是將"info.htm"的內容拷貝到當前的頁面中,當訪問者來瀏覽時,會看到其它html文件一樣顯示info.htm其中的內容。

其它的ssi指令使用形式基本同剛才的舉例差不多,可見ssi使用只是插入一點**而已,使用形式非常簡單。

當然,如果web伺服器不支援ssi,它就會只不過將它當作注釋資訊,直接跳過其中的內容;瀏覽器也會忽略這些資訊。

ssi指令基本格式

ssi指令基本格式:

程式**:

如 程式**:

說明:

1.是html語法中表示注釋,當web伺服器不支援ssi時,會忽略這些資訊。

2.#include 為ssi指令之一。

3.file 為include的引數, info.htm為引數值,在本指令中指將要包含的文件名。

注意:

1. timefmt:定義日期和時間的使用格式。timefmt引數必須在echo命令之前使用。

顯示結果為:

wednesday, april 12, 2000

也許使用者對上例中所使用的%a %b %d感到很陌生,下面我們就以**的形式總結一下ssi中較為常用的一些日期和時間格式。

sizefmt:決定檔案大小是以位元組、千位元組還是兆位元組為單位表示。如果以位元組為單位,引數值為"bytes";對於千位元組和兆位元組可以使用縮寫形式。同樣,sizefmt引數必須放在fsize命令的前面才能使用。

2、include命令

include命令可以把其它文件中的文字或插入到當前被解析的文件中,這是整個ssi的關鍵所在。通過include命令只需要改動乙個檔案就可以瞬間更新整個站點!

include命令具有兩個不同的引數:

virtual:給出到伺服器端某個文件的虛擬路徑。例如:

file:給出到當前目錄的相對路徑,其中不能使用"../",也不能使用絕對路徑。例如:

這就要求每乙個目錄中都包含乙個header.html檔案。

3、echo命令

echo命令可以顯示以下各環境變數:

document_name:顯示當前文件的名稱。

顯示結果為:

index.html

document_uri:顯示當前文件的虛擬路徑。例如:

顯示結果為:

/yourdirectory/yourfilename.html

隨著**的不斷發展,那些越來越長的url位址肯定會讓人頭疼。如果使用ssi,一切就會迎刃而解。因為我們可以把**的網域名稱和ssi命令結合在一起顯示完整的url,即:

query_string_unescaped:顯示未經轉義處理的由客戶端傳送的查詢字串,其中所有的特殊字元前面都有轉義符"/"。例如:

date_local:顯示伺服器設定時區的日期和時間。使用者可以結合config命令的timefmt引數,定製輸出資訊。例如:

顯示結果為:

saturday, the 15 of april, in the year 2000

date_gmt:功能與date_local一樣,只不過返回的是以格林尼治標準時間為基準的日期。例如:

last_modified:顯示當前文件的最後更新時間。同樣,這是ssi中非常實用的乙個功能,只要在html文件中加入以下這行簡單的文字,就可以在頁面上動態的顯示更新時間。

cgi環境變數

除了ssi環境變數之外,echo命令還可以顯示以下cgi環境變數:

server_software:顯示伺服器軟體的名稱和版本。例如:

server_name: 顯示伺服器的主機名稱,dns別名或ip位址。例如:

server_protocol:顯示客戶端請求所使用的協議名稱和版本,如http/1.0。例如:

server_port:顯示伺服器的響應埠。例如:

request_method:顯示客戶端的文件請求方法,包括get, head, 和post。例如:

remote_host:顯示發出請求資訊的客戶端主機名稱。

remote_addr:顯示發出請求資訊的客戶端ip位址。

auth_type:顯示使用者身份的驗證方法。

remote_user:顯示訪問受保護頁面的使用者所使用的帳號名稱。

4、fsize:顯示指定檔案的大小,可以結合config命令的sizefmt引數定製輸出格式。

5、flastmod:顯示指定檔案的最後修改日期,可以結合config 命令的timefmt引數控制輸出格式。

這裡,我們可以利用flastmod引數顯示出乙個頁面上所有鏈結頁面的更新日期。方法如下:

file

another file

顯示結果為:

file april 19, 2000

another file january 08, 2000

6、exec

exec命令可以執行cgi指令碼或者shell命令。使用方法如下:

cmd:使用/bin/sh執行指定的字串。如果ssi使用了includesnoexec選項,則該命令將被遮蔽。

cgi:可以用來執行cgi指令碼。例如,下面這個例子中使用服務端cgi-bin目錄下的counter.pl指令碼程式在每個頁面放置乙個計數器:

與指令有關的一些概念

指令 又稱為 機器指令 是指示計算機執行某種操作的命令,是計算機執行的最小功能單位。分為 操作碼 和 位址碼 cpu從主存中取出並執行一條機器指令的時間稱為指令週期。不同機器指令的指令週期可能不同。指令週期常用若干機器週期來表示,乙個機器週期又包含若干時鐘週期。乙個機器週期包含若干時鐘週期 時鐘週期...

git和github的一些指令

首先清楚github的建立者和linux的創造者屬於同乙個人,清楚一些linux的使用對git和github的操作更方便。常見的linux命令 以上就是一些簡單的linux命令熟悉完這些簡單的命令需要簡單的去熟悉操作,使用git和github需要理解 倉庫和本地倉庫的概念,github就相當於乙個 ...

Oracle的一些指令

1 檢視所有的資料庫例項 select fromv instance 如 ora9i 2 檢視當前庫的所有資料表 sql select table name from all tables select from all tables 返回所有表 select table name from all...