<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    wilin
    wilin
    posts - 6,comments - 3,trackbacks - 0
        SSI(Server Side Include),通常稱為服務器端嵌入,是一種類似于ASP的基于服務器的網頁制作技術。大多數(尤其是基于Unix平臺)的WEB服務器如Netscape Enterprise Server等均支持SSI命令。

    SSI工作原理:

          在一個通常以.shtml為擴展名的SSI文件中,標準的HTML編碼會被直接送到瀏覽器上,而內嵌Perl語言形式的SSI命令則先被網絡服務器解釋執行,如果是標準輸出的話,輸出信息也將作為標準的HTML而被送至瀏覽器。

    SSI簡單應用實例: 〈html〉

    〈head〉〈title〉my first SSI page〈/title〉〈/head〉

    〈body〉

    歡迎您(于〈!--# echo var="date_local" --〉)訪問本網站。

    〈/html〉 標記在上面文檔中的“〈!--# --〉”結構表明了SSI命令會被服務器翻譯執行,而不是直接送到客戶端。我們可以在瀏覽器中用“查看→源文件"觀察源代碼:

    〈html〉

    〈head〉〈title〉my first SSI page〈/title〉〈/head〉

    〈body〉

    歡迎您(于dec 06 1999)訪問本網站。

    〈/html〉

    我們發現,文檔中的html被直接傳到了客戶端,而SSI命令得到了執行。SSI代碼在客戶端是不可見的,客戶端只能看到它執行的效果。

    一個比較實用的例子

           網站維護常常碰到的一個問題是,網站的結構已經固定,卻為了更新一點內容而不得不重做一大批網頁。SSI提供了一種簡單、有效的方法來解決這一問題,它將一個網站的基本結構放在幾個簡單的HTML文件中(模板),以后我們要做的只是將文本傳到服務器,讓程序按照模板自動生成網頁,從而使管理大型網站變得容易。如:

    〈html〉

    〈head〉〈title〉SSI example〈/title〉〈/head〉

    〈body〉

    〈h2〉新聞〈/h2〉

    〈p〉〈!--# include file="news.txt" --〉

    〈p〉新聞更新日期:〈!--# flastmod file="news.txt" --〉

    〈/body〉

    〈/html〉

    將頻繁的更新內容放在news.txt中,SSI會通過 include 指令將其內容包含到輸出的網頁中。通過 flastmod 指令可在網頁中顯示new.txt的最近一次更改日期。

    構建學習SSI的環境

    支持SSI的web server 很多,如可以選用omnihttpd profeSSIonal, 這是一款win 95/98平臺下的支持SSI的web服務器??芍苯訌膆ttp://www.omnicron.ab.ca/httpd/下載這一共享軟件。 1.#echo 作用:將環境變量插入到頁面中。語法: <!--#echo var=”變量名稱”--> 示例:本文檔名稱:<!--#echo var=”DOCUMENT_NAME”--> 現在時間:<!--#echo var=”DATE_LOCAL”-->
    你的IP地址是:<!--#echo var=”REMOTE_ADDR”--> 可在SSI中使用的變量: 1.只有SSI中能使用的變量。2.標準CGI變量3.某些服務器支持的變量 ①下面是在標準SSI支持的變量:變量名稱作用示例 1 DOCUMENT_NAME 當前文檔名 echo.html 2 DOCUMENT_URL 或DOCUMENT_URI 當前文檔相對URL /ssi/echo.html 3 QUERY_STRING_UNESCAPED
    或QUERY_STRING 所發送的查詢字符串 sample 4 DATE_LOCAL 服務器中當前日期 Sun, 23 May 1999 21:54:30 5 DATE_GMT 以格林威冶時間設置的服務器時間 Sun, 23 May 1999 13:54:30 6 LAST_MODIFIED 當前文檔最后修改時間 23-May-1999 PST   ②標準的CGI變量
    WEB上關于CGI環境變量測試的示例: LINUX下Apache:http://hoyi.zb169.net/cgi-bin/hiecho.cgi?sample
    Freebsd下Apache: http://hoyi.onlineexpress.net/cgi-bin/hiecho.cgi?sample CGI環境變量名稱作用示例 1 AUTH_TYPE 用戶所使用的身份驗證類型 2 CONTENT_LENGTH 服務器輸出文本長度 0 3 HTTP_ACCEPT 客戶機可接受的MIME類型 application/vnd.ms-excel, application/msword, */* 4 HTTP_USER_AGENT 客戶機瀏覽器配置狀況 Mozilla/4.0 (compatible; MSIE 4.01; Windows 98) 5 GATEWARY_INTERFACE 服務器所使用的 CGI 規范的修正版 CGI/1.1 6 PATH_INFO 客戶端給出附加路徑信息 7 PATH_TRANSLATED PATH_INFO 的值,但帶有擴展為某個目錄規范的虛擬路徑 /v/spool/webadm/html 8 QUERY_STRING 在引用該腳本的 URL 中跟在問號 (?) 后面的信息 Sample 9 REMOTE_ADDR 客戶機IP地址 202.103.27.103 10 REMOTE_HOST 客戶機名稱 11 REQUEST_METHOD HTTP請求方法 GET 12 SCRIPT_NAME 當前腳本名稱 /cgi-main/cgiwrap/hoyi/hiecho.cgi 13 SERVER_NAME 服務器名稱或IP地址 hoyi.zb169.net 14 SERVER_PORT 服務器接請求的TCP/IP端口 80 15 SERVER_PROTOCOL 與請求有關的信息檢索協議的名稱與版本,通常為 HTTP/1.0 HTTP/1.1 16 SERVER_SOFTWARE 響應請求的 Web 服務器軟件的名稱和版本 Apache/1.3.6 (Unix) 2、#include 作用:將文本文件的內容直接插入到文檔頁面中。語法:
    <!--#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”-->將尾文件插入到當前頁面 2、#include 作用:將文本文件的內容直接插入到文檔頁面中。語法:
    <!--#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”-->將尾文件插入到當前頁面 4.#exec  作用:將某一外部程序的輸出插入到頁面中??刹迦隒GI程序或者是常規應用程序的輸入,這取決于使用的參數是cmd還是cgi。語法:語法:
    <!--#exec cmd=”文件名稱”--> <!--#exec cgi=”文件名稱”--> 參數: cmd 常規應用程序 cgi CGI腳本程序示例: <!--#exec cmd=”cat /etc/passwd”-->將會顯示密碼文件 <!--#exec cmd=”dir /b”-->將會顯示當前目錄下文件列表  <!--#exec cgi=”/cgi-bin/gb.cgi”-->將會執行CGI程序gb.cgi。 <!--#exec cgi=”/cgi-bin/access_log.cgi”-->將會執行CGI程序access_log.cgi。注意:從上面的示例可以看出,這個指令相當方便,但是也存在安全問題。禁止方法:.Apache,將access.conf中的”Options Includes ExecCGI”這行代碼刪除;.在IIS中,要禁用 #exec 命令,可修改 SSIExecDisable 元數據庫; 5.#config 作用:指定返回給客戶端瀏覽器的錯誤信息、日期和文件大小的格式。語法: <!--#config errmsg=”自定義錯誤信息”--> <!--#config sizefmt=”顯示單位”--> <!--#config timefmt=”顯示格式”--> 參數: errmsg 自定義SSI執行錯誤信息,可以為任何你喜歡的方式。 sizefmt 文件大小顯示方式,默認為字節方式(“bytes”)可以改為千字節方式(“abbrev”) timefmt 時間顯示方式,最靈活的配置屬性。代碼示例作用代碼示例作用
    %aMon縮寫的星期幾%m05月份數
    %AMonday星期幾%M55分
    %b
    %hAug縮寫的月份名%pAM上、下午(AM或PM)
    %r10:20:20 AM12小制時間
    %BAuguest月份名%s40秒
    %d01當月第幾天%T20:20:3024小制時間
    %D05/28/99數字日期%U
    %W21一年中的星期
    %e1當月第幾天,前面不放0%w2從星期天至今天數
    %H20小時(24小時制)%y992位數格式的年號
    %I08小時(12小時制)%Y19994位數表示的年號
    %j320一年中的天數%zPDT時區位置
    代碼示例作用代碼示例作用 %a Mon 縮寫的星期幾 %m 05 月份數 %A Monday 星期幾 %M 55 分 %b
    %h Aug 縮寫的月份名 %p AM 上、下午(AM或PM) %r 10:20:20 AM 12小制時間 %B Auguest 月份名 %s 40 秒 %d 01 當月第幾天 %T 20:20:30 24小制時間 %D 05/28/99 數字日期 %U
    %W 21 一年中的星期 %e 1 當月第幾天,前面不放0 %w 2 從星期天至今天數 %H 20 小時(24小時制) %y 99 2位數格式的年號 %I 08 小時(12小時制) %Y 1999 4位數表示的年號 %j 320 一年中的天數 %z PDT 時區位置 示例:顯示一個不存在文件的大小
    <!--#config errmsg=”服務器執行錯誤,請聯系管理員 yiho@126.com,謝謝!”--> <!--#fsize file=”不存在的文件.htm”--> 以千字節方式顯示文件大小 <!--#config sizefmt=”abbrev”--> <!--#fsizefile=”news.htm”--> 以特定的時間格式顯示時間 <!--#config timefmt=”%Y年/%m月%d日 星期%W 北京時間%H:%M:%s,%Y年已過去了%j天今天是%Y年的第%U個星期”--> <!--#echo var=”DATE_LOCAL”--> 顯示今天是星期幾,幾月,時區
    <!--#config timefmt=”今天%A, %B ,服務器時區是 %z,是”--> <!--#echo var=”DATE_LOCAL”--> 6.XSSI XSSI(Extended SSI)是一組高級SSI指令,內置于Apache 1.2或更高版本的mod-include模塊之中。其中可利用的的指令有: #printenv #set #if #printenv 作用:顯示當前存在于WEB服務器環境中的所有環境變量。語法:<!--#printenv--> 參數:無示例: <!--#printenv--> #set 作用:可給變量賦值,以用于后面的if語句。語法:<!--#set var=”變量名”value=”變量值”--> 參數:無示例: <!--#set var=”color”value=”紅色”--> #if 作用:創建可以改變數據的頁面,這些數據根據使用if語句時計算的要求予以顯示。語法: <!--#if expr=”$變量名=\”變量值A\””--> 顯示內容 <!--#elif expr=”$變量名=\”變量值B\””--> 顯示內容 <!--#else--> 顯示內容 <!--#endif”--> 參數:關于XSSI的條件表達式 表達式作用
    (string)如果string存在,就返回真
    string1=string2如果兩個字符串相等,就返回真
    string1!=string2如果兩個字符串不等,就返回真
    string1<string2如果string1小于string2,就返回真
    string1<=string2如果string1小于等于string2,就返回真
    string1>string2如果string1大于string2,就返回真
    string1>=string2如果string1大于等于string2,就返回真
    !string!為”非”操作符;若string存在,就返回真
    (string1)&&(string2)&&為”與”操作符;string1、string2都存在,就返回真
    (string1)!!(string2)!! 為”或”操作符;string1、string2有一個存在,就返回真
    表達式 作用 (string) 如果string存在,就返回真 string1=string2 如果兩個字符串相等,就返回真 string1!=string2 如果兩個字符串不等,就返回真 string1<string2 如果string1小于string2,就返回真 string1<=string2 如果string1小于等于string2,就返回真 string1>string2 如果string1大于string2,就返回真 string1>=string2 如果string1大于等于string2,就返回真 !string !為”非”操作符;若string存在,就返回真 (string1)&&(string2) &&為”與”操作符;string1、string2都存在,就返回真 (string1)!!(string2) !! 為”或”操作符;string1、string2有一個存在,就返回真示例: <!--#if expr=”$SERVER_NAME=\”hoyi.zb169.net\””--> 歡迎光臨好易CGI工廠在淄博熱線的分站http://hoyi.zb169.net。 <!--#elif expr=”$SERVER_NAME=\”linux.cqi.com.cn\”” --> 歡迎光臨好易CGI工廠在太陽城的分站http://linux.cqi.com.cn/~hoyi。 <!--#else--> 歡迎光臨好易CGI工廠! <!--#endif”--> 注意:用于前面指令中的反斜杠,是用來代換內部的引號,以便它們不會被解釋為結束表達式。不可省略 。
    posted on 2005-08-16 23:46 wilin 閱讀(220) 評論(0)  編輯  收藏 所屬分類: 技術點滴
    主站蜘蛛池模板: 国产成人免费AV在线播放| 亚洲欧美日本韩国| 三根一起会坏掉的好痛免费三级全黄的视频在线观看 | 亚洲av无码不卡| 国产永久免费高清在线| 国产亚洲一区二区三区在线| 九九免费久久这里有精品23| 亚洲中文字幕无码专区 | 暖暖免费在线中文日本| 久久精品国产亚洲AV麻豆~| 色欲国产麻豆一精品一AV一免费| 亚洲国产精品第一区二区| 69pao强力打造免费高清| 免费无遮挡无码视频在线观看| 国产免费拔擦拔擦8x| 曰批免费视频播放在线看片二| 亚洲精品在线视频| 三级黄色在线免费观看| 久久精品国产亚洲AV无码麻豆| 无码区日韩特区永久免费系列| 久久亚洲国产最新网站| 国产一区二区三区免费在线观看| 国产成人自产拍免费视频| 亚洲AV中文无码乱人伦下载| 青娱乐免费视频在线观看| 日本亚洲欧美色视频在线播放| 亚洲精品国产福利一二区| 午夜老司机永久免费看片| 亚洲一区二区三区在线网站| 四虎免费影院4hu永久免费| 13小箩利洗澡无码视频网站免费| 亚洲美女大bbbbbbbbb| 日韩免费观看一级毛片看看 | 免费国产黄网站在线观看视频| 中文文字幕文字幕亚洲色| 亚洲AV蜜桃永久无码精品| 怡红院亚洲怡红院首页| 99免费观看视频| 思思久久99热免费精品6| 中文字幕亚洲综合久久| 国产jizzjizz视频免费看|