婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av

主頁 > 知識(shí)庫 > <b;淺談 ASP 模板技術(shù)之參數(shù)傳遞</b;

<b;淺談 ASP 模板技術(shù)之參數(shù)傳遞</b;

熱門標(biāo)簽:客服外呼系統(tǒng)呼叫中心 保定電銷機(jī)器人軟件 成都銷售外呼系統(tǒng)公司 電話機(jī)器人銷售公司嗎 vue 地圖標(biāo)注拖拽 自動(dòng)外呼系統(tǒng)怎么防止封卡 土地證宗地圖標(biāo)注符號(hào) 鎮(zhèn)江云外呼系統(tǒng)怎么樣 電話機(jī)器人案例

在內(nèi)容系統(tǒng)開發(fā)中,涉及內(nèi)容和形式分離的過程,也就是根據(jù)用戶自定義頁面模板然后替換成相關(guān)內(nèi)容的過程。這和外面很多整站的內(nèi)容管理系統(tǒng),有本質(zhì)上的區(qū)別。有不少內(nèi)容管理系統(tǒng),多少人用,都是一個(gè)樣子,因?yàn)轫撁鏌o法自定義,不懂編程的用戶無法修改。象那種,只填幾個(gè)參數(shù)就出來的網(wǎng)站,我估計(jì)是沒有什么前途的。因?yàn)槿巳硕际且粋€(gè)樣子,人人都是會(huì)填那些參數(shù)的。

舉個(gè)例子,你查看一下以下幾個(gè)站點(diǎn),你會(huì)認(rèn)為他們是一套程序嗎?
www.blueidea.com
http://pages.blueidea.com
http://digi.blueidea.com
http://dsp.blueidea.com
http://www.dcshooter.com

如果我告訴你,他們都是一個(gè)程序,只是由相關(guān)的站長,設(shè)計(jì)不同的模板得到的頁面顯示,你就會(huì)發(fā)現(xiàn),這個(gè)系統(tǒng)的優(yōu)良性。

當(dāng)然由于這套系統(tǒng)的高端性,目前普通用戶無法使用,于是我開發(fā)了我自己的內(nèi)容管理系統(tǒng) kiss 內(nèi)容管理系統(tǒng)。

而要給用戶一個(gè)模板系統(tǒng),首先,就是要有一個(gè)簡單易懂的標(biāo)記系統(tǒng)。大家看看下面的代碼,看是否容易理解:
tag:loop channelid="1" pagesize="10" title="20" type="NEW" column="1">

略有HTML經(jīng)驗(yàn)的人,就知道,這是一個(gè)模板標(biāo)記里的循環(huán)標(biāo)記,因?yàn)檫@是最常用的,你看我們網(wǎng)站的首頁,列出10條文檔也就只需要寫一個(gè)這樣的標(biāo)記就完成了,這是不是讓不明白編程的人,也很容易做出自己設(shè)計(jì)的頁面出來呢?

參數(shù)說明:
channelid 為一個(gè)欄目的在數(shù)據(jù)庫中的ID
pagesize 為列舉多少個(gè)文檔
title 為標(biāo)題的長度
type 為列表列型,這里的”NEW”我們設(shè)定為最新的文檔
column 為顯示幾列

以上介紹是給不會(huì)編程,或者對不了解內(nèi)容系統(tǒng)的人做個(gè)普及,并且給我的內(nèi)容管理系統(tǒng)打個(gè)廣告,而且我想說的是,藍(lán)色理想站點(diǎn)用的內(nèi)容管理系統(tǒng)模板模塊,要比我的強(qiáng)大很多。

下面輪到程序員了,其它人可以不用往下看。
那么怎么把它們的值讀出來呢?
下面這個(gè)函數(shù)是最后的,用來解析所有模板的內(nèi)容

復(fù)制代碼 代碼如下:

'【功能】自定義模板標(biāo)簽
Function ProcessCustomTags(ByVal sContent)
         Dim objRegEx, Match, Matches
      '建立正則表達(dá)式
         Set objRegEx = New RegExp
      '查找內(nèi)容
         objRegEx.Pattern = "tag:.*/>"
      '忽略大小寫
         objRegEx.IgnoreCase = True
      '全局查找
         objRegEx.Global = True
      'Run the search against the content string we've been passed
         Set Matches = objRegEx.Execute(sContent)
      '循環(huán)已發(fā)現(xiàn)的匹配
         For Each Match in Matches
         'Replace each match with the appropriate HTML from our ParseTag function
         sContent = Replace(sContent, Match.Value, ParseTag(Match.Value))
         Next
      '消毀對象
         set Matches = nothing
         set objRegEx = nothing
      '返回值
         ProcessCustomTags = sContent
End Function

  在上面的代碼中,用到了正則表達(dá)式,如果你對它還不是很了解,請參閱相關(guān)資料,這里就不詳細(xì)介紹了。

那么怎么取出參數(shù)值呢,也是一個(gè)函數(shù):代碼拷貝框

復(fù)制代碼 代碼如下:

'【功能】取得模板標(biāo)簽的參數(shù)名
'如:tag:loop channelid="1" pagesize="10" title="20" type="NEW" column="1">
function GetAttribute(ByVal strAttribute, ByVal strTag)
      Dim objRegEx, Matches
      '建立正則表達(dá)式
         Set objRegEx = New RegExp
      '查找內(nèi)容 (the attribute name followed by double quotes etc) 
         objRegEx.Pattern = lCase(strAttribute) "=""[0-9a-zA-Z]*"""
      '忽略大小寫
         objRegEx.IgnoreCase = True
      '全局查找
         objRegEx.Global = True
      '執(zhí)行搜索
         Set Matches = objRegEx.Execute(strTag)
      '如有匹配的則返回值, 不然返回空值
         if Matches.Count > 0 then
              GetAttribute = Split(Matches(0).Value,"""")(1)
         else
              GetAttribute = ""
         end if
      '消毀對象
         set Matches = nothing
         set objRegEx = nothing
end function

OK好了,那怎么解析像上面tagloop:>內(nèi)容呢?
下面就是一個(gè)函數(shù):

復(fù)制代碼 代碼如下:

'【功能】解析并替換相應(yīng)的模板標(biāo)簽內(nèi)容
function ParseTag(ByVal strTag)
      dim arrResult, ClassName, arrAttributes, sTemp, i, objClass
      '如果標(biāo)簽是空的則退出函數(shù)
         if len(strTag) = 0 then exit function
      'Split the match on the colon character (:)
         arrResult = Split(strTag, ":")
      'Split the second item of the resulting array on the space character, to
         'retrieve the name of the class
         ClassName = Split(arrResult(1), " ")(0)
         'Use a select case statement to work out which class we're dealing with
         'and therefore which properties to populate etc
         select case uCase(ClassName)
         'It's a loop class, so instantiate one and get it's properties
         case "LOOP"
                     set objClass = new LOOP_Class
                     LOOP.Channelid= GetAttribute("channelid", strTag")
                     LOOP.Pagesize= GetAttribute("pagesize", strTag")
                     LOOP.title = GetAttribute("title", strTag")
                     LOOP.type = GetAttribute("Type", strTag")
                     ParseTag = LOOP.column (GetAttribute("column", strTag"), true)
                     'Destroy our class object
                     set objClass = nothing
         end select
end function


上面的loop是一個(gè)類,這里也不再詳說了。因?yàn)楹镁脹]有說話了,不太習(xí)慣,呵呵。
  結(jié)論,通過上面的函數(shù),你可以很快的編寫相關(guān)的模板程序了。希望對你有幫助。

 

標(biāo)簽:臺(tái)灣 成都 天津 懷化 重慶 內(nèi)江 公主嶺 麗江

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《<b;淺談 ASP 模板技術(shù)之參數(shù)傳遞</b;》,本文關(guān)鍵詞  amp,淺談,ASP,模板,技術(shù),之,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請?zhí)峁┫嚓P(guān)信息告之我們,我們將及時(shí)溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《<b;淺談 ASP 模板技術(shù)之參數(shù)傳遞</b;》相關(guān)的同類信息!
  • 本頁收集關(guān)于<b;淺談 ASP 模板技術(shù)之參數(shù)傳遞</b;的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章
    主站蜘蛛池模板: 石楼县| 班戈县| 平和县| 怀远县| 奉新县| 台安县| 句容市| 封丘县| 古蔺县| 永登县| 大连市| 闽清县| 师宗县| 商河县| 全州县| 沈丘县| 巴楚县| 越西县| 华容县| 南和县| 大庆市| 双桥区| 刚察县| 武乡县| 株洲县| 崇仁县| 桂东县| 奉贤区| 高台县| 深圳市| 平武县| 静安区| 区。| 蒲城县| 正阳县| 正宁县| 朝阳区| 永兴县| 婺源县| 喀喇沁旗| 伊通|