使用SSI(Server Side Include)的html檔案副檔名,SSI(Server Side Include),通常稱為“伺服器端嵌入”或稱為“伺服器端包含”,是一種類似於ASP的基於伺服器的網頁製作技術。
將內容傳送到瀏覽器之前,可以使用「伺服器端包含 (SSI)」指令將文字、圖形或應用程式資訊包含到網頁中。例如,可以使用 SSI 包含時間/日期戳記、版權聲明或供客戶填寫並傳回的表單。對於在多個文件中重複出現的文字或圖形,使用包含文件是一種簡單的方法。將內容存入一個包含文件中即可,而不必將內容輸入所有文件。透過一個非常簡單的語句即可呼叫包含文件,此語句指示 Web 伺服器將內容插入適當網頁。而且,使用包含文件時,對內容的所有變更只需在一個地方就能完成。
因為包含 SSI 指令的檔案要求特殊處理,所以必須為所有 SSI 檔案賦予 SSI 檔案副檔名。預設副檔名是 .stm、.shtm 和 .shtml。
Web 伺服器在處理網頁的同時處理 SSI 指令。當 Web 伺服器遇到 SSI 指令時,直接將包含文件的內容插入 HTML 網頁。如果「包含檔案」中包含 SSI 指令,則同時插入此檔案。除了用於包含檔案的基本指令之外,還可以使用 SSI 指令插入檔案的相關資訊(如檔案的大小)或執行應用程式或 shell 指令。
網站維護常常碰到的一個問題是,網站的架構已經固定,卻為了更新一點內容而不得不重做一大批網頁。 SSI提供了一種簡單、有效的方法來解決這個問題,它將一個網站的基本結構放在幾個簡單的HTML檔案中(範本),以後我們要做的只是將文字傳到伺服器,讓程式依照範本自動產生網頁,讓管理大型網站變得容易。
所以,利用SHTML格式的頁面目的和ASP 差不多,但是因為是API 所以運轉速度更快,效率更高,比ASP快,比HTML慢,但由於可以使用伺服器端包含,因此使頁面更新容易(特別是大量更新banner,版權等),想像一下吧,你有一段HTML,要在中間穿插一些特殊的服務端腳本,比如插入其他HTML 段落,你選擇ASP 來完成這個任務,但是如果任務更繁重,需要更多的時間,例如5 s,這時候你不用ASP 而用 SHTML,或許處理時間就只用4s 了。
之所以要扯到 SSI,是因爲 Shtml - Server-Parsed HTML 的縮寫。包含有嵌入式伺服器方包含指令的 HTML 文字。在傳送給瀏覽器之前,伺服器會對 SHTML 文件進行完全地讀取、分析以及修改。 shtml和asp 有一些相似,以shtml命名的檔案裡,使用了ssi的一些指令,就像asp中的指令,你可以在SHTML檔案中寫入SSI指令,當客戶端存取這些shtml檔案時,伺服器端會把這些SHTML檔案讀取和解釋,把SHTML檔案中包含的SSI指令解釋出來例如:你可以在SHTML檔案中用SSI指令引用其他的html檔案(#include ),伺服器傳送給客戶端的文件,是已經解釋的SHTML不會有SSI指令。它實現了HTML所沒有的功能,就是可以實現了動態的SHTML,可以說是HTML的一種進化吧。像新浪的新聞系統就是這樣的,新聞內容是固定的但它上面的廣告和菜單等就是用#include引用進來的。
目前,主要有以下幾種用途:
顯示伺服器端環境變數<#echo>
將文字內容直接插入文件中<#include>
顯示WEB文件相關資訊<#flastmod #fsize> (如檔案製作日期/大小等)
直接執行伺服器上的各種程式<#exec>(如CGI或其他可執行程式)
設定SSI資訊顯示格式<#config>(如檔案製作日期/大小顯示方式)
進階SSI
SSI是為WEB伺服器提供的一套指令,這些指令只要直接嵌入到HTML文件的註解內容之中即可。如:
#
就是一條SSI指令,其作用是將"info.htm"的內容拷貝到目前的頁面中,當訪客來瀏覽時,會看到其它HTML文件一樣顯示info.htm其中的內容。其它的SSI指令使用形式基本上同剛才的舉例差不多,可見SSI使用只是插入一點代碼而已,使用形式非常簡單。當然,如果WEB伺服器不支援SSI,它就會只不過將它當作註解訊息,直接跳過其中的內容;瀏覽器也會忽略這些資訊。
在某些WEB伺服器上(如IIS 4.0/SAMBAR 4.2),包含#include 指令的檔案必須使用已被對應到SSI 解釋程式的副檔名;否則,Web 伺服器將不會處理該SSI指令;預設情況下,擴充名.stm、.shtm 和.shtml 被映射到解釋程序(Ssinc.dll)。
Apache則是根據你的設定情況而定,修改srm.conf如:
#
AddType text/x-server-parsed-html .shtml 將只對.shtml副檔名的檔案解析SSI指令
AddType text/x-server-parsed-html .html 將對所有HTML文件解析SSI指令
Netscape WEB伺服器直接使用 Administration Server(管理伺服器)可開啟SSI功能。
Website 使用 Server Admin 程式中的 Mapping 標籤,副檔名新增內容類型為:wwwserver/html-ssi
Cern 伺服器不支援SSI,可用SSI詐騙法,到 http://sw.cse.bris.ac.uk/WebTools/fakessi.html 上下載一個PERL腳本,即可讓你的CERN伺服器使用一些SSI指令。 (不支援exec指令。)
#
以上是STHML 教學(一)的詳細內容。更多資訊請關注PHP中文網其他相關文章!