|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
使用filesystemobject,可以对服务器上的文件进行操作,浏览、复制、移动、删除等。有ado的支持,asp对数据库的操作非常得心应手。你甚至可以像使用本地数据库那样,管理远程主机上的数据库,对表格、记录进行各种操作。 呵呵,实在这个写了都挺久的了,看看内里的日期就晓得了,只不外一向不想公布出来,此次在做一个小型的论坛,就把本来本人的的谁人庞大的摸板引擎修正了一翻拿来用,由于把ASP代码和HTML代码分别了开来,以是论坛是能够变更作风,在用这个摸板引擎的过程当中发明了它功效上仍是有点不敷,就是在轮回标签交换上,不外假如分离数组能够轻松完成的,呵呵,详细用法临时不说了...等偶然间再把教程写出来
<ScriptLanguage="vbscript"Runat="Server">
--------------------------------------
版权申明:
Author:西楼冷月
Date:2005-8-21
HomeSite:www.xilou.Net|-西楼社区-|//www.chinaCMS.org
E-Mail:ch_56@163.com
QQ:39949376CMS会商群:11497202
version:西楼模板引擎V1.0精简版XILOU-EasyTemplatev1.0
--------------------------------------
函数申明:
Set_Block(BlkName)
Set_Bvar(TagName,TagValue)
Prase_Block(BlkName,BlkList)
Replace_Block(BlkNameList)
Set_Var(TagName,TagValue)
Prase_Temp()
OutPut()
--------------------------------------
变量申明:
Key(),Value(),Num//--------单标签保留数组
BKey(),BValue(),BNum//--------区块内单标签保留数组
Temp//----------模板全局变量
BeginBlockStart,BeginBlockEnd,EndBlockStart,EndBlockEnd//----------区块标签设置
VarBegin,VarEnd//------------单标签设置
Re,Match,Mathes
--------------------------------------
汇合申明:
Block//保留交换后的区块内容
Block_List//掏出区块,保留区块内内容
BlockNC//掏出区块,保留包含区块标签的全部区块内容
---------------------------------------
OnErrorResumeNext
ClassEasyTemplate
PrivateKey(),Value(),Num
PrivateBKey(),BValue(),BNum
publicBlock,Block_List,BlockNC
PublicTemp
PrivateBeginBlockStart,BeginBlockEnd,EndBlockStart,EndBlockEnd
PrivateVarBegin,VarEnd
PrivateRe,Match,Mathes
--------------------------------------------------------
PrivateSubClass_Initialize
response.write"西楼模板引擎入手下手了,哈哈!<br>"
setBlock=CreateObject("Scripting.Dictionary")追加内容,更新内容
setBlock_List=CreateObject("Scripting.Dictionary")贮存区块内容
setBlockNC=CreateObject("Scripting.Dictionary")//贮存包含区块标签的区块内容
setre=NewRegExp
redimKey(20)
redimValue(20)
Num=0
redimBKey(20)
redimBValue(20)
BNum=0
redimPBblockName(20)
BlockNum=0
------------默许标签形式------------
BeginBlockStart="<beginblock:"
BeginBlockEnd=">"
EndBlockStart="<endblock:"
EndBlockEnd=">"
VarBegin="{Tag:"
VarEnd="}"
EndSub
PrivateSubClass_Terminate
setBlock=nothing
setBlock_List=nothing
setBlockNC=nothing
setre=nothing
EraseKey
EraseValue
EraseBKey
EraseBValue
response.write"西楼模板引擎停止了!"
EndSub
-------------------------------------------------------
PublicPropertyLetSetTag(BS,BE,ES,EE,BG,ED)//--------从头设置标签形式
BeginBlockStart=BS
BeginBlockEnd=BE
EndBlockStart=ES
EndBlockEnd=EE
VarBegin=BG
VarEnd=ED
EndProperty
-------------------------------------------------------
PublicSubSet_Var(TagName,TagValue)单标签剖析
dimk
ifIsArray(TagName)andIsArray(TagValue)then
fork=LBound(TagName)toUbound(TagName)
Key(Num)=TagName(k)
Value(Num)=TagValue(k)
Num=Num+1
ifUBound(Key)=Numthen假如数组太小则静态分派空间
redimpreserveKey(Num+20)
redimpreserveValue(Num+20)
endif
next
else
Key(Num)=TagName
Value(Num)=TagValue
Num=Num+1
ifUBound(Key)=Numthen
redimpreserveKey(Num+20)
redimpreserveValue(Num+20)
endif
endif
EndSub
PublicSubPrase_Temp()//------------单标签交换
dimi
fori=LBound(Key)toUBound(Value)
Temp=replace(Temp,VarBegin&Key(i)&VarEnd,Value(i))
next
EndSub
===============区块剖析============================
PublicSubSet_BVar(TagName,TagValue)区块内单标签剖析
dimk
ifIsArray(TagName)andIsArray(TagValue)then
fork=LBound(TagName)toUbound(TagName)
BKey(BNum)=TagName(k)
BValue(BNum)=TagValue(k)
BNum=BNum+1
ifUBound(BKey)=BNumthen假如数组太小则静态分派空间
redimpreserveBKey(BNum+20)
redimpreserveBValue(BNum+20)
endif
next
else
BKey(BNum)=TagName
BValue(BNum)=TagValue
BNum=BNum+1
ifUBound(BKey)=BNumthen
redimpreserveBKey(BNum+20)
redimpreserveBValue(BNum+20)
endif
endif
EndSub
PublicSubSet_Block(blkname)设置区块,掏出区块内容
re.Global=true
re.IgnoreCase=true
re.Pattern=BeginBlockStart&blkname&BeginBlockEnd&"([sS.]*?)"&EndBlockStart&blkname&EndBlockEnd
setmatches=re.Execute(Temp)
BlockNC.Addblkname,matches(0)//创建全部区块称号和对应的键值
match=matches(0).SubMatches(0)
Block_List.Addblkname,match//创建区块称号和对应的键值
setmatches=nothing
EndSub
PublicSubPrase_Block(BlkName)//---剖析区块
dimBlk_Content,tag,k
Blk_Content=Block_List.Item(BlkName)
k=LBound(BKey)
foreachtaginBKey
Blk_Content=replace(Blk_Content,VarBegin&tag&VarEnd,BValue(k))
k=k+1
next
redimBKey(20)从头声明数组
redimBValue(20)
BNum=0初始数变成0
ifBlock.Exists(BlkName)then//不反复纪录内容
dimm:m=Block.Item(BlkName)
Block.Remove(BlkName)
Block.AddBlkName,Blk_Content
else
Block.AddBlkName,Blk_Content
endif
EndSub
==============================================
PublicSubClearTag()//----------扫除过剩标签
re.Global=true
re.IgnoreCase=true
re.Pattern=BeginBlockStart&"([sS.]*?)"&BeginBlockEnd&"([sS.]*?)"&EndBlockStart&"([sS.]*?)"&EndBlockEnd
setMatches=re.Execute(Temp)
ForEachMatchInMatches
Temp=Replace(Temp,Match,"")
Next
re.Pattern=VarBegin&"([sS.]*?)"&VarEnd
SetMatches=re.Execute(Temp)
ForEachMatchInMatches
Temp=Replace(Temp,Match,"")
Next
EndSub
=============================================
PublicSubOutPut()//----------输入剖析后的模板,办法
response.writeTemp
EndSub
EndClass
</Script>我想详细了解ASP整站代码与PSP整站代码有什么优缺点,那个更好,更安全,更用容易维护,和管理。。。 |
|