shtml精簡教程讓你知道什麼是shtml_基礎教程

來源:互聯網
上載者:User
目前,主要有以下幾種用用途:   
1、顯示伺服器端環境變數   
2、將常值內容直接插入到文檔中   
3、顯示WEB文檔相關資訊(如檔案製作日期/大小等)   
4、直接執行伺服器上的各種程式(如CGI或其他可執行程式)   
5、設定SSI資訊顯示格式(如檔案製作日期/大小顯示方式)   進階SSI可設定變數使用if條件陳述式。  
SSI有什麼用? 之所以要扯到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引用進來的。
  目前,主要有以下幾種用用途:
  1、顯示伺服器端環境變數<#echo>
  2、將常值內容直接插入到文檔中<#include>
  3、顯示WEB文檔相關資訊<#flastmod><#fsize>(如檔案製作日期/大小等)
  4、直接執行伺服器上的各種程式<#exec>(如CGI或其他可執行程式)
  5、設定SSI資訊顯示格式<#config>(如檔案製作日期/大小顯示方式)
  進階SSI可設定變數使用if條件陳述式。
 
使用SSI
  SSI是為WEB伺服器提供的一套命令,這些命令只要直接嵌入到HTML文檔的注釋內容之中即可。如:
  <#include file="info.htm"-->
  就是一條SSI指令,其作用是將"info.htm"的內容拷貝到當前的頁面中,當訪問者來瀏覽時,會看到其它HTML文檔一樣顯示info.htm其中的內容。
  其它的SSI指令使用形式基本同剛才的舉例差不多,可見SSI使用只是插入一點代碼而已,使用形式非常簡單。
  當然,如果WEB伺服器不支援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指令。)
 
SSI指令基本格式
SSI指令基本格式:
程式碼:



程式碼:
<#include file="info.htm"-->
<#include file="info.htm"-->
說明:
1.是HTML文法中表示注釋,當WEB伺服器不支援SSI時,會忽略這些資訊。
2.#include 為SSI指令之一。
3.file 為include的參數, info.htm為參數值,在本指令中指將要包含的文檔名。
注意:
1.


本文檔名稱:程式碼:


現在時間:程式碼:


你的IP地址是程式碼:


#include 示範
作用:
將文字檔的內容直接插入到文檔頁面中。
文法:
程式碼:
<#include file="檔案名稱"-->
<#include virtual="檔案名稱"-->
<#include file="檔案名稱"-->
<#include virtual="檔案名稱"-->
file 檔案名稱是一個相對路徑,該路徑相對於使用 #include 指令的文檔所在的目錄。被包含檔案可以在同一級目錄或其子目錄中,但不能在上一級目錄中。如表示目前的目錄下的的nav_head.htm文檔,則為file="nav_head.htm"。
virtual 檔案名稱是 Web 網站上的虛擬目錄的完整路徑。如表示相對於伺服器主目錄下hoyi目錄下的nav_head.htm檔案;則為file="/hoyi/nav_head.htm"
參數:
file 指定包含檔案相對於本文檔的位置
virtual 指定相對於伺服器主目錄的位置
注意:
1、檔案名稱必須帶有副檔名。
2、被包含的檔案可以具有任何副檔名,我覺得直接使用htm副檔名最方便,微軟公司推薦使用 .inc 副檔名(這就看你的愛好了)。
樣本:
程式碼:
<#include file="nav_head.htm"-->將標頭檔插入到當前頁面
<#include file="nav_foot.htm"-->將尾檔案插入到當前頁面
<#include file="nav_head.htm"-->將標頭檔插入到當前頁面
<#include file="nav_foot.htm"-->將尾檔案插入到當前頁面
#flastmod 和#fsize 示範
作用: #flastmod 檔案最新動向日期
#fsize 檔案的長度
文法:
程式碼:




參數:
file 指定包含檔案相對於本文檔的位置 如 info.txt 表示目前的目錄下的的info.txt文檔
virtual 指定相對於伺服器主目錄的位置 如 /hoyi/info.txt 表示
注意:
檔案名稱必須帶有副檔名。
樣本:
程式碼:


將目前的目錄下news.htm檔案的最新動向日期插插入到當前頁面
程式碼:


將目前的目錄下news.htm的檔案大小入到當前頁面
 
#exec 示範
作用:
將某一外部程式的輸出插入到頁面中。可插入CGI程式或者是常規應用程式的輸入,這取決於使用的參數是cmd還是cgi。
文法:
程式碼:




參數:
cmd 常規應用程式
cgi CGI指令碼程式
樣本:
程式碼:
將會顯示密碼檔案
將會顯示目前的目錄下檔案清單
將會執行CGI程式gb.cgi。
將會執行CGI程式access_log.cgi。
將會顯示密碼檔案
將會顯示目前的目錄下檔案清單
將會執行CGI程式gb.cgi。
將會執行CGI程式access_log.cgi。
注意:
從上面的樣本可以看出,這個指令相當方便,但是也存在安全問題。
禁止方法:
.Apache,將access.conf中的"Options Includes ExecCGI"這行代碼刪除;
.在IIS中,要禁用 #exec 命令,可修改 SSIExecDisable 中繼資料庫;

#config
作用: 指定返回給用戶端瀏覽器的錯誤資訊、日期和檔案大小的格式。
文法:
程式碼:






參數:
errmsg 自訂SSI執行錯誤資訊,可以為任何你喜歡的方式。
sizefmt 檔案大小顯示方式,預設為位元組方式("bytes")可以改為KB方式("abbrev")
timefmt 時間顯示方式,最靈活的配置屬性。
樣本: 顯示一個不存在檔案的大小
程式碼:




以KB方式顯示檔案大小
程式碼:




以特定的時間格式顯示時間
程式碼:

顯示今天是星期幾,幾月,時區



顯示今天是星期幾,幾月,時區


XSSI
XSSI(Extended SSI)是一組進階SSI指令,內建於Apache 1.2或更高版本的mod-include模組之中。
其中可利用的的指令有:
#printenv
#set
#if
#printenv
作用: 顯示當前存在於WEB伺服器環境中的所有環境變數。
文法:程式碼:


參數:無
樣本:
程式碼:


#set
  • 相關關鍵詞:
    相關文章

    A Free Trial That Lets You Build Big!

    Start building with 50+ products and up to 12 months usage for Elastic Compute Service

    • Sales Support

      1 on 1 presale consultation

    • After-Sales Support

      24/7 Technical Support 6 Free Tickets per Quarter Faster Response

    • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.