亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > ASP > 正文

淺談 ASP 模板技術之參數傳遞

2024-05-04 11:07:49
字體:
來源:轉載
供稿:網友

在內容系統開發中,涉及內容和形式分離的過程,也就是根據用戶自定義頁面模板然后替換成相關內容的過程。這和外面很多整站的內容管理系統,有本質上的區別。有不少內容管理系統,多少人用,都是一個樣子,因為頁面無法自定義,不懂編程的用戶無法修改。象那種,只填幾個參數就出來的網站,我估計是沒有什么前途的。因為人人都是一個樣子,人人都是會填那些參數的。

舉個例子,你查看一下以下幾個站點,你會認為他們是一套程序嗎?
www.blueidea.com
http://pages.blueidea.com
http://digi.blueidea.com
http://dsp.blueidea.com
http://www.dcshooter.com

如果我告訴你,他們都是一個程序,只是由相關的站長,設計不同的模板得到的頁面顯示,你就會發現,這個系統的優良性。

當然由于這套系統的高端性,目前普通用戶無法使用,于是我開發了我自己的內容管理系統 kiss 內容管理系統。

而要給用戶一個模板系統,首先,就是要有一個簡單易懂的標記系統。大家看看下面的代碼,看是否容易理解:
<tag:loop channelid="1" pagesize="10" /> channelid 為一個欄目的在數據庫中的ID
pagesize 為列舉多少個文檔
title 為標題的長度
type 為列表列型,這里的”NEW”我們設定為最新的文檔
column 為顯示幾列

以上介紹是給不會編程,或者對不了解內容系統的人做個普及,并且給我的內容管理系統打個廣告,而且我想說的是,藍色理想站點用的內容管理系統模板模塊,要比我的強大很多。

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

復制代碼代碼如下:

'【功能】自定義模板標簽
Function ProcessCustomTags(ByVal sContent)
Dim objRegEx, Match, Matches
'建立正則表達式
Set objRegEx = New RegExp
'查找內容
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)
'循環已發現的匹配
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

 

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

那么怎么取出參數值呢,也是一個函數:代碼拷貝框 

復制代碼代碼如下:

'【功能】取得模板標簽的參數名
'如:<tag:loop channelid="1" pagesize="10" /> function GetAttribute(ByVal strAttribute, ByVal strTag)
Dim objRegEx, Matches
'建立正則表達式
Set objRegEx = New RegExp
'查找內容 (the attribute name followed by double quotes etc) 
objRegEx.Pattern = lCase(strAttribute) & "=""[0-9a-zA-Z]*"""
'忽略大小寫
objRegEx.IgnoreCase = True
'全局查找
objRegEx.Global = True
'執行搜索
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:>內容呢?
下面就是一個函數:

復制代碼代碼如下:

'【功能】解析并替換相應的模板標簽內容
function ParseTag(ByVal strTag)
dim arrResult, ClassName, arrAttributes, sTemp, i, objClass
'如果標簽是空的則退出函數
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是一個類,這里也不再詳說了。因為好久沒有說話了,不太習慣,呵呵。
  結論,通過上面的函數,你可以很快的編寫相關的模板程序了。希望對你有幫助。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
国模叶桐国产精品一区| 精品福利在线视频| 欧美日韩在线另类| 伊人久久久久久久久久久久久| 国产精品一区二区3区| 深夜福利一区二区| 国产精品久久久久久搜索| 亚洲人成亚洲人成在线观看| 欧美精品在线视频观看| 色综合久综合久久综合久鬼88| 成人免费网站在线看| 欧美xxxx做受欧美| 日本一区二三区好的精华液| 欧美在线视频播放| 欧美性开放视频| 国产欧美精品在线| 久久视频在线看| 成人日韩在线电影| 狠狠躁夜夜躁人人爽超碰91| 欧美激情免费看| 色婷婷亚洲mv天堂mv在影片| 日韩激情av在线免费观看| 久久精品视频导航| 日韩中文视频免费在线观看| 91国内揄拍国内精品对白| 亚洲春色另类小说| 亚洲在线一区二区| 在线观看国产精品日韩av| 亚洲天堂av在线播放| 美女啪啪无遮挡免费久久网站| 操人视频在线观看欧美| 久久视频国产精品免费视频在线| 中文字幕欧美在线| 热re99久久精品国产66热| 日韩在线观看免费网站| 91成人福利在线| 成人久久久久久久| 日韩av中文字幕在线免费观看| 久久久精品视频在线观看| 国产精品va在线播放我和闺蜜| 欧美不卡视频一区发布| 欧美性感美女h网站在线观看免费| 亚洲欧美日韩中文视频| 日韩欧美a级成人黄色| 亚洲系列中文字幕| 欧美极品美女电影一区| 国产精品成久久久久三级| 国产一区二区三区在线看| 亚洲高清av在线| 欧美www视频在线观看| 国产成人一区二区在线| 久久久精品日本| 免费99精品国产自在在线| 欧美在线一区二区三区四| 欧美成人中文字幕在线| 欧美精品在线免费| 国产suv精品一区二区| 国产精品h在线观看| 亚洲人免费视频| 欧美高清在线观看| 国产精品网站视频| 欧美日韩在线视频观看| 亚洲国产三级网| 久久久久久久久久国产精品| 欧美激情一区二区三区高清视频| 欧美另类极品videosbestfree| 国产精品99久久99久久久二8| 欧美午夜视频在线观看| 亚洲精品98久久久久久中文字幕| 激情亚洲一区二区三区四区| 日韩不卡中文字幕| 日韩av在线免费观看一区| 久久人人爽人人爽人人片亚洲| 97精品视频在线播放| 亚洲精品视频中文字幕| 成人福利视频网| 欧美成年人视频网站欧美| 久久综合国产精品台湾中文娱乐网| 久久久免费高清电视剧观看| 欧美孕妇孕交黑巨大网站| 欧美日韩一区免费| 欧美视频在线免费看| 国产精品久久久久久久app| 韩国19禁主播vip福利视频| 亚洲欧美综合另类中字| 欧美日韩国产精品一区二区三区四区| 成人免费淫片视频软件| 国产精品美女av| 亚洲精品aⅴ中文字幕乱码| 国产999在线观看| 日韩免费中文字幕| 久久免费国产视频| 精品亚洲夜色av98在线观看| 国产一区二区三区在线免费观看| 中文字幕亚洲二区| 欧美日韩成人免费| 亚洲成人999| 国产xxx69麻豆国语对白| 国产v综合ⅴ日韩v欧美大片| 国产精品欧美日韩久久| 国模叶桐国产精品一区| 久久影视电视剧凤归四时歌| 97免费视频在线| 最新国产精品拍自在线播放| 狠狠做深爱婷婷久久综合一区| 国产日韩换脸av一区在线观看| 日韩有码在线观看| 亚洲va欧美va在线观看| 国产va免费精品高清在线| 亚洲第一av网站| 欧洲亚洲妇女av| 尤物九九久久国产精品的特点| 中文字幕亚洲欧美日韩在线不卡| 精品欧美aⅴ在线网站| 久久久女女女女999久久| 国产精品久久久亚洲| 久久久亚洲精品视频| 欧美成人午夜激情| 另类天堂视频在线观看| 日韩在线观看你懂的| 成人在线免费观看视视频| 高清日韩电视剧大全免费播放在线观看| 日韩精品极品视频免费观看| 992tv成人免费影院| 国产精品影院在线观看| 亚洲欧美日韩高清| 日韩欧美精品在线观看| 一区二区成人av| 国产精品a久久久久久| 欧美极品xxxx| 欧美一级大片视频| 欧美激情视频一区二区三区不卡| 国产日韩欧美在线视频观看| 超在线视频97| 久久综合五月天| 欧美电影院免费观看| 久久久噜噜噜久久久| 亚洲高清一二三区| 亚洲午夜小视频| 国产一区二区视频在线观看| 精品视频—区二区三区免费| 国产suv精品一区二区三区88区| 欧美成aaa人片免费看| 国产成人精品久久亚洲高清不卡| 97国产精品视频人人做人人爱| 伊人成人开心激情综合网| 精品久久久国产精品999| 中文一区二区视频| 97久久伊人激情网| 精品美女久久久久久免费| 国产欧美亚洲精品| 亚洲小视频在线| 亚洲欧美日韩在线一区| 亚洲国产高清福利视频| 久久免费高清视频| 国产精品一区二区久久久久| 亚洲第一视频网站| 超碰日本道色综合久久综合| 亚洲美女精品久久| 91av在线网站| 成人免费观看网址| 国产日韩av在线| 日韩精品免费在线观看| 日韩精品中文字|