<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),通常稱為服務(wù)器端嵌入,是一種類似于ASP的基于服務(wù)器的網(wǎng)頁(yè)制作技術(shù)。大多數(shù)(尤其是基于Unix平臺(tái))的WEB服務(wù)器如Netscape Enterprise Server等均支持SSI命令。

    SSI工作原理:

          在一個(gè)通常以.shtml為擴(kuò)展名的SSI文件中,標(biāo)準(zhǔn)的HTML編碼會(huì)被直接送到瀏覽器上,而內(nèi)嵌Perl語言形式的SSI命令則先被網(wǎng)絡(luò)服務(wù)器解釋執(zhí)行,如果是標(biāo)準(zhǔn)輸出的話,輸出信息也將作為標(biāo)準(zhǔn)的HTML而被送至瀏覽器。

    SSI簡(jiǎn)單應(yīng)用實(shí)例: 〈html〉

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

    〈body〉

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

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

    〈html〉

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

    〈body〉

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

    〈/html〉

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

    一個(gè)比較實(shí)用的例子

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

    〈html〉

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

    〈body〉

    〈h2〉新聞〈/h2〉

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

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

    〈/body〉

    〈/html〉

    將頻繁的更新內(nèi)容放在news.txt中,SSI會(huì)通過 include 指令將其內(nèi)容包含到輸出的網(wǎng)頁(yè)中。通過 flastmod 指令可在網(wǎng)頁(yè)中顯示new.txt的最近一次更改日期。

    構(gòu)建學(xué)習(xí)SSI的環(huán)境

    支持SSI的web server 很多,如可以選用omnihttpd profeSSIonal, 這是一款win 95/98平臺(tái)下的支持SSI的web服務(wù)器。可直接從http://www.omnicron.ab.ca/httpd/下載這一共享軟件。 1.#echo 作用:將環(huán)境變量插入到頁(yè)面中。語法: <!--#echo var=”變量名稱”--> 示例:本文檔名稱:<!--#echo var=”DOCUMENT_NAME”--> 現(xiàn)在時(shí)間:<!--#echo var=”DATE_LOCAL”-->
    你的IP地址是:<!--#echo var=”REMOTE_ADDR”--> 可在SSI中使用的變量: 1.只有SSI中能使用的變量。2.標(biāo)準(zhǔn)CGI變量3.某些服務(wù)器支持的變量 ①下面是在標(biāo)準(zhǔn)SSI支持的變量:變量名稱作用示例 1 DOCUMENT_NAME 當(dāng)前文檔名 echo.html 2 DOCUMENT_URL 或DOCUMENT_URI 當(dāng)前文檔相對(duì)URL /ssi/echo.html 3 QUERY_STRING_UNESCAPED
    或QUERY_STRING 所發(fā)送的查詢字符串 sample 4 DATE_LOCAL 服務(wù)器中當(dāng)前日期 Sun, 23 May 1999 21:54:30 5 DATE_GMT 以格林威冶時(shí)間設(shè)置的服務(wù)器時(shí)間 Sun, 23 May 1999 13:54:30 6 LAST_MODIFIED 當(dāng)前文檔最后修改時(shí)間 23-May-1999 PST   ②標(biāo)準(zhǔn)的CGI變量
    WEB上關(guān)于CGI環(huán)境變量測(cè)試的示例: LINUX下Apache:http://hoyi.zb169.net/cgi-bin/hiecho.cgi?sample
    Freebsd下Apache: http://hoyi.onlineexpress.net/cgi-bin/hiecho.cgi?sample CGI環(huán)境變量名稱作用示例 1 AUTH_TYPE 用戶所使用的身份驗(yàn)證類型 2 CONTENT_LENGTH 服務(wù)器輸出文本長(zhǎng)度 0 3 HTTP_ACCEPT 客戶機(jī)可接受的MIME類型 application/vnd.ms-excel, application/msword, */* 4 HTTP_USER_AGENT 客戶機(jī)瀏覽器配置狀況 Mozilla/4.0 (compatible; MSIE 4.01; Windows 98) 5 GATEWARY_INTERFACE 服務(wù)器所使用的 CGI 規(guī)范的修正版 CGI/1.1 6 PATH_INFO 客戶端給出附加路徑信息 7 PATH_TRANSLATED PATH_INFO 的值,但帶有擴(kuò)展為某個(gè)目錄規(guī)范的虛擬路徑 /v/spool/webadm/html 8 QUERY_STRING 在引用該腳本的 URL 中跟在問號(hào) (?) 后面的信息 Sample 9 REMOTE_ADDR 客戶機(jī)IP地址 202.103.27.103 10 REMOTE_HOST 客戶機(jī)名稱 11 REQUEST_METHOD HTTP請(qǐng)求方法 GET 12 SCRIPT_NAME 當(dāng)前腳本名稱 /cgi-main/cgiwrap/hoyi/hiecho.cgi 13 SERVER_NAME 服務(wù)器名稱或IP地址 hoyi.zb169.net 14 SERVER_PORT 服務(wù)器接請(qǐng)求的TCP/IP端口 80 15 SERVER_PROTOCOL 與請(qǐng)求有關(guān)的信息檢索協(xié)議的名稱與版本,通常為 HTTP/1.0 HTTP/1.1 16 SERVER_SOFTWARE 響應(yīng)請(qǐng)求的 Web 服務(wù)器軟件的名稱和版本 Apache/1.3.6 (Unix) 2、#include 作用:將文本文件的內(nèi)容直接插入到文檔頁(yè)面中。語法:
    <!--#include file=”文件名稱”--> <!--#include virtual=”文件名稱”--> file 文件名是一個(gè)相對(duì)路徑,該路徑相對(duì)于使用 #include 指令的文檔所在的目錄。被包含文件可以在同一級(jí)目錄或其子目錄中,但不能在上一級(jí)目錄中。如表示當(dāng)前目錄下的的nav_head.htm文檔,則為 file=”nav_head.htm”。 virtual 文件名是 Web 站點(diǎn)上的虛擬目錄的完整路徑。如表示相對(duì)于服務(wù)器文檔根目錄下hoyi目錄下的nav_head.htm文件;則為file=” /hoyi/nav_head.htm” 參數(shù): file 指定包含文件相對(duì)于本文檔的位置 virtual 指定相對(duì)于服務(wù)器文檔根目錄的位置注意: 1、文件名稱必須帶有擴(kuò)展名。 2、被包含的文件可以具有任何文件擴(kuò)展名,我覺得直接使用htm擴(kuò)展名最方便,微軟公司推薦使用 .inc 擴(kuò)展名(這就看你的愛好了)。示例: <!--#include file=”nav_head.htm”-->將頭文件插入到當(dāng)前頁(yè)面 <!--#include file=”nav_foot.htm”-->將尾文件插入到當(dāng)前頁(yè)面 2、#include 作用:將文本文件的內(nèi)容直接插入到文檔頁(yè)面中。語法:
    <!--#include file=”文件名稱”--> <!--#include virtual=”文件名稱”--> file 文件名是一個(gè)相對(duì)路徑,該路徑相對(duì)于使用 #include 指令的文檔所在的目錄。被包含文件可以在同一級(jí)目錄或其子目錄中,但不能在上一級(jí)目錄中。如表示當(dāng)前目錄下的的nav_head.htm文檔,則為 file=”nav_head.htm”。 virtual 文件名是 Web 站點(diǎn)上的虛擬目錄的完整路徑。如表示相對(duì)于服務(wù)器文檔根目錄下hoyi目錄下的nav_head.htm文件;則為file=” /hoyi/nav_head.htm” 參數(shù): file 指定包含文件相對(duì)于本文檔的位置 virtual 指定相對(duì)于服務(wù)器文檔根目錄的位置注意: 1、文件名稱必須帶有擴(kuò)展名。 2、被包含的文件可以具有任何文件擴(kuò)展名,我覺得直接使用htm擴(kuò)展名最方便,微軟公司推薦使用 .inc 擴(kuò)展名(這就看你的愛好了)。示例: <!--#include file=”nav_head.htm”-->將頭文件插入到當(dāng)前頁(yè)面 <!--#include file=”nav_foot.htm”-->將尾文件插入到當(dāng)前頁(yè)面 4.#exec  作用:將某一外部程序的輸出插入到頁(yè)面中??刹迦隒GI程序或者是常規(guī)應(yīng)用程序的輸入,這取決于使用的參數(shù)是cmd還是cgi。語法:語法:
    <!--#exec cmd=”文件名稱”--> <!--#exec cgi=”文件名稱”--> 參數(shù): cmd 常規(guī)應(yīng)用程序 cgi CGI腳本程序示例: <!--#exec cmd=”cat /etc/passwd”-->將會(huì)顯示密碼文件 <!--#exec cmd=”dir /b”-->將會(huì)顯示當(dāng)前目錄下文件列表  <!--#exec cgi=”/cgi-bin/gb.cgi”-->將會(huì)執(zhí)行CGI程序gb.cgi。 <!--#exec cgi=”/cgi-bin/access_log.cgi”-->將會(huì)執(zhí)行CGI程序access_log.cgi。注意:從上面的示例可以看出,這個(gè)指令相當(dāng)方便,但是也存在安全問題。禁止方法:.Apache,將access.conf中的”O(jiān)ptions Includes ExecCGI”這行代碼刪除;.在IIS中,要禁用 #exec 命令,可修改 SSIExecDisable 元數(shù)據(jù)庫(kù); 5.#config 作用:指定返回給客戶端瀏覽器的錯(cuò)誤信息、日期和文件大小的格式。語法: <!--#config errmsg=”自定義錯(cuò)誤信息”--> <!--#config sizefmt=”顯示單位”--> <!--#config timefmt=”顯示格式”--> 參數(shù): errmsg 自定義SSI執(zhí)行錯(cuò)誤信息,可以為任何你喜歡的方式。 sizefmt 文件大小顯示方式,默認(rèn)為字節(jié)方式(“bytes”)可以改為千字節(jié)方式(“abbrev”) timefmt 時(shí)間顯示方式,最靈活的配置屬性。代碼示例作用代碼示例作用
    %aMon縮寫的星期幾%m05月份數(shù)
    %AMonday星期幾%M55分
    %b
    %hAug縮寫的月份名%pAM上、下午(AM或PM)
    %r10:20:20 AM12小制時(shí)間
    %BAuguest月份名%s40秒
    %d01當(dāng)月第幾天%T20:20:3024小制時(shí)間
    %D05/28/99數(shù)字日期%U
    %W21一年中的星期
    %e1當(dāng)月第幾天,前面不放0%w2從星期天至今天數(shù)
    %H20小時(shí)(24小時(shí)制)%y992位數(shù)格式的年號(hào)
    %I08小時(shí)(12小時(shí)制)%Y19994位數(shù)表示的年號(hào)
    %j320一年中的天數(shù)%zPDT時(shí)區(qū)位置
    代碼示例作用代碼示例作用 %a Mon 縮寫的星期幾 %m 05 月份數(shù) %A Monday 星期幾 %M 55 分 %b
    %h Aug 縮寫的月份名 %p AM 上、下午(AM或PM) %r 10:20:20 AM 12小制時(shí)間 %B Auguest 月份名 %s 40 秒 %d 01 當(dāng)月第幾天 %T 20:20:30 24小制時(shí)間 %D 05/28/99 數(shù)字日期 %U
    %W 21 一年中的星期 %e 1 當(dāng)月第幾天,前面不放0 %w 2 從星期天至今天數(shù) %H 20 小時(shí)(24小時(shí)制) %y 99 2位數(shù)格式的年號(hào) %I 08 小時(shí)(12小時(shí)制) %Y 1999 4位數(shù)表示的年號(hào) %j 320 一年中的天數(shù) %z PDT 時(shí)區(qū)位置 示例:顯示一個(gè)不存在文件的大小
    <!--#config errmsg=”服務(wù)器執(zhí)行錯(cuò)誤,請(qǐng)聯(lián)系管理員 yiho@126.com,謝謝!”--> <!--#fsize file=”不存在的文件.htm”--> 以千字節(jié)方式顯示文件大小 <!--#config sizefmt=”abbrev”--> <!--#fsizefile=”news.htm”--> 以特定的時(shí)間格式顯示時(shí)間 <!--#config timefmt=”%Y年/%m月%d日 星期%W 北京時(shí)間%H:%M:%s,%Y年已過去了%j天今天是%Y年的第%U個(gè)星期”--> <!--#echo var=”DATE_LOCAL”--> 顯示今天是星期幾,幾月,時(shí)區(qū)
    <!--#config timefmt=”今天%A, %B ,服務(wù)器時(shí)區(qū)是 %z,是”--> <!--#echo var=”DATE_LOCAL”--> 6.XSSI XSSI(Extended SSI)是一組高級(jí)SSI指令,內(nèi)置于Apache 1.2或更高版本的mod-include模塊之中。其中可利用的的指令有: #printenv #set #if #printenv 作用:顯示當(dāng)前存在于WEB服務(wù)器環(huán)境中的所有環(huán)境變量。語法:<!--#printenv--> 參數(shù):無示例: <!--#printenv--> #set 作用:可給變量賦值,以用于后面的if語句。語法:<!--#set var=”變量名”value=”變量值”--> 參數(shù):無示例: <!--#set var=”color”value=”紅色”--> #if 作用:創(chuàng)建可以改變數(shù)據(jù)的頁(yè)面,這些數(shù)據(jù)根據(jù)使用if語句時(shí)計(jì)算的要求予以顯示。語法: <!--#if expr=”$變量名=\”變量值A(chǔ)\””--> 顯示內(nèi)容 <!--#elif expr=”$變量名=\”變量值B\””--> 顯示內(nèi)容 <!--#else--> 顯示內(nèi)容 <!--#endif”--> 參數(shù):關(guān)于XSSI的條件表達(dá)式 表達(dá)式作用
    (string)如果string存在,就返回真
    string1=string2如果兩個(gè)字符串相等,就返回真
    string1!=string2如果兩個(gè)字符串不等,就返回真
    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有一個(gè)存在,就返回真
    表達(dá)式 作用 (string) 如果string存在,就返回真 string1=string2 如果兩個(gè)字符串相等,就返回真 string1!=string2 如果兩個(gè)字符串不等,就返回真 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有一個(gè)存在,就返回真示例: <!--#if expr=”$SERVER_NAME=\”hoyi.zb169.net\””--> 歡迎光臨好易CGI工廠在淄博熱線的分站http://hoyi.zb169.net。 <!--#elif expr=”$SERVER_NAME=\”linux.cqi.com.cn\”” --> 歡迎光臨好易CGI工廠在太陽(yáng)城的分站http://linux.cqi.com.cn/~hoyi。 <!--#else--> 歡迎光臨好易CGI工廠! <!--#endif”--> 注意:用于前面指令中的反斜杠,是用來代換內(nèi)部的引號(hào),以便它們不會(huì)被解釋為結(jié)束表達(dá)式。不可省略 。
    posted on 2005-08-16 23:46 wilin 閱讀(219) 評(píng)論(0)  編輯  收藏 所屬分類: 技術(shù)點(diǎn)滴

    只有注冊(cè)用戶登錄后才能發(fā)表評(píng)論。


    網(wǎng)站導(dǎo)航:
     
    主站蜘蛛池模板: 免费看搞黄视频网站| 欧洲乱码伦视频免费| 亚洲熟妇av一区二区三区下载| 台湾一级毛片永久免费| 边摸边脱吃奶边高潮视频免费| 亚洲精品夜夜夜妓女网| 免费做爰猛烈吃奶摸视频在线观看| 美女被免费网站在线视频免费| 亚洲成在人天堂一区二区| 成年女人毛片免费播放人| 国产又黄又爽胸又大免费视频| 亚洲成人一级电影| 亚洲午夜精品第一区二区8050| 久久A级毛片免费观看| 国产精品亚洲а∨无码播放麻豆| 亚洲男人天堂2017| 亚洲日韩涩涩成人午夜私人影院| aⅴ免费在线观看| 在线播放国产不卡免费视频| 亚洲人成777在线播放| 最新国产AV无码专区亚洲| 最近中文字幕免费mv视频7| 两性色午夜视频免费网| 国产亚洲欧美日韩亚洲中文色| 亚洲AV人人澡人人爽人人夜夜| 国产在线19禁免费观看| 日本黄网站动漫视频免费| 成人无码精品1区2区3区免费看| 国产 亚洲 中文在线 字幕| 亚洲AV乱码久久精品蜜桃| 伊人久久亚洲综合影院| 黄页网站免费在线观看| 久久免费精彩视频| 国产精品免费久久久久电影网| 亚洲人成色777777精品| 亚洲精品中文字幕无乱码| 亚洲成av人片天堂网| 亚洲精品无码99在线观看 | 亚洲gv猛男gv无码男同短文| 国产美女精品视频免费观看| 青青视频观看免费99|