数码资讯
asp高级模板引擎实现类
选购提示
关注价格、性能、续航、售后和真实使用场景,理性比较后再下单。
复制代码代码如下所示:
类模板
私人c_char,c_path,c_filename,c_content,c_pageurl,c_currentpage,c_pagestr,replacepagestr
私人标签名
***************************************
'设置代码
***************************************
公共财产让焦(ByVal Str)
c_char = str
最后的财产
公共属性获取字符
c_char字符=
最后的财产
***************************************
设置模板文件夹路径
***************************************
公共财产让路径(ByVal Str)
c_path = str
最后的财产
公共财产获取路径
路径= c_path
最后的财产
***************************************
设置模板文件名
***************************************
公共财产让文件名(ByVal Str)
c_filename = str
最后的财产
公共属性获取文件名
文件名= c_filename
最后的财产
***************************************
获取模板文件的特定路径
***************************************
公共财产得到文件路径
如果Len(路径)> 0,那么路径=替换(路径,)
如果正确(路径,1),然后=路径
路径=路径文件名
最后的财产
***************************************
'设置分页URL
***************************************
公共财产让PageUrl(ByVal Str)
c_pageurl = str
最后的财产
公共财产得到pageurl
pageurl = c_pageurl
最后的财产
***************************************
设置分页当前页
***************************************
公共财产让currentpage(ByVal Str)
c_currentpage = str
最后的财产
公共财产得到currentpage
currentpage = c_currentpage
最后的财产
***************************************
输出内容
***************************************
公共属性刷新
写(c_content)反应。
最后的财产
***************************************
类初始化
***************************************
私有子class_initialize
标签名=PJBlog
c_char =UTF-8
replacepagestr =阵列(
端子
***************************************
过滤冲突字符
***************************************
私有函数doquote(ByVal Str)
doquote =取代(STR,CHR(34),)
端功能
***************************************
阶级终结
***************************************
私有子class_terminate
端子
***************************************
加载文件方法
***************************************
私有函数的LoadFromFile(ByVal cPath)
模糊的目标
设置obj = server.createobject(ADODB。流)
obj
类型= 2
模式= 3
开。
字符集字符。
位置=大小
LoadFromFile Server.MapPath(cpath)。
READTEXT LoadFromFile =。
关闭
结束
设置目标=没有
端功能
***********************************************
获取常规匹配对象
***********************************************
公共函数的GetMatch(ByVal Str,ByVal Rex)
暗区
设置注册表= new RegExp
与注册
IGNORECASE =真。
全局=真的
模式=雷克斯
设置=执行(STR)
如果杂志数> 0
集getmatch = MAG
其他的
集getmatch = server.createobject(脚本。词典)
最后如果
结束
设置注册表
端功能
***************************************
打开文件
***************************************
公共子开
c_content = LoadFromFile(路径)
端子
***************************************
缓冲区执行
***************************************
市民Sub Buffer
c_content = GridView(c_content)
电话executefunction
端子
***************************************
GridView
***************************************
私有函数GridView(ByVal o_content)
暗淡的比赛,submatches,潜台词
属性、内容
集比赛= getmatch(o_content,({ 的 } +))
如果匹配,则计数> 0然后
每个submatches比赛
属性= submatches.submatches(1)的kocms
内容= submatches.submatches(2)…
潜台词=过程(属性、内容)'返回所有流程执行的结果
o_content =取代(o_content,submatches.value,的潜台词(1)
下一个
最后如果
设置匹配=无
如果Len(replacepagestr(0))> 0然后确定标签变量值,如果有一个替代。
o_content =取代(o_content,replacepagestr(0),replacepagestr(1),1,1, 1)
replacepagestr =阵列(
最后如果
o_content GridView =
端功能
***************************************
明确的属性
***************************************
私有函数过程(一个属性,一个内容)
暗淡的比赛,submatches,文本
昏暗的matchtag,matchcontent
昏暗的DataSource,名元,页ID
数据源= :姓名:元= :页面= 0:ID =
集比赛= getmatch(属性、 S(1),(1))
如果匹配,则计数> 0然后
每个submatches比赛
matchtag = submatches.submatches(0)得到的属性名称
matchcontent = submatches.submatches(1)得到的属性值
如果Lcase(matchtag)=名字然后名字= matchcontent获取Name属性的值
如果Lcase(matchtag)=数据源,然后数据源= matchcontent'gets DataSource属性值
如果Lcase(matchtag)=元然后元= matchcontent获取元素的属性值
如果Lcase(matchtag)=页面然后页面= matchcontent获取页面的属性值
如果Lcase(matchtag)=ID然后ID = matchcontent id属性值的获取
下一个
如果Len(化名)> 0和Len(matchcontent)> 0
内容分析(数据源,名称,内容,页面,ID)的执行解析性质
如果Len(数据源)> 0然后属性=取代(属性,数据源=
如果页面> > 0,那么属性=替换(属性,页)
属性替换(属性
属性替换
过程=数组(属性、文本、元素)
其他的
进程=数组(属性,)
最后如果
其他的
进程=数组(属性,)
最后如果
设置匹配=无
端功能
***************************************
解析
***************************************
私有函数分析(ByVal ID,ByVal Name,一个内容,一个页面,ByVal)
模糊的数据
Select Case Lcase(化名)的选择数据源
案例回路数据= DataBind(ID,内容页,PageID)
案例数据=数据(ID,内容页,PageID)
最后选择
数据分析=
端功能
***************************************
绑定数据源
***************************************
私有函数DataBind(ByVal ID,一个内容,一个页面,ByVal PageID)
模糊的文字,火柴,submatches,潜台词
执行文本id(1)加载数据源
集比赛= getmatch(内容,({ 的 } +))
如果匹配,则计数> 0然后
每个submatches比赛
潜台词= ItemTemplate(submatches.submatches(0),文本,网页,PageID)的执行模块更换
内容=取代(内容,submatches.value,潜台词,1 - 1, 1)
下一个
DataBind =内容
其他的
= DataBind
最后如果
设置匹配=无
端功能
***************************************
匹配模板实例
***************************************
私有函数ItemTemplate(ByVal TextTag,ByVal文本,ByVal page,ByVal PageID)
暗淡的比赛,submatches,submatchtext
昏暗的secmatch,SecSubMatch
朦胧的我,TempText
昏暗的textlen,TextLeft,TextRight
集比赛= getmatch(null,({ 的 } +))
如果匹配,则计数> 0然后
每个submatches比赛
submatchtext = submatches.submatches(0)
---------------------------------------------
循环嵌套开始
---------------------------------------------
submatchtext = GridView(submatchtext)
---------------------------------------------
循环嵌套结束
---------------------------------------------
如果UBound(文,1)= 0
= temptext
其他的
= temptext
-----------------------------------------------
开始页面
-----------------------------------------------
如果Len(页)> 0和页> 0然后
如果Len(currentpage)= 0或currentpage = 0然后currentpage = 1
textlen = UBound(文,2)
textleft =(currentpage - 1)*页
textright = currentpage * - 1页
如果TextLeft的<< 0 textleft = 0
如果textright textlen然后textright > = textlen
c_pagestr =多页(textlen + 1页,currentpage,PageUrl,浮动权
如果int(Len(c_pagestr))> 0
replacepagestr =阵列(
其他的
replacepagestr =阵列(
最后如果
其他的
textleft = 0
textright = UBound(文,2)
最后如果
我要textright = textleft
temptext = temptext itemresec(我,submatchtext、文本)的加载模板内容
下一个
最后如果
下一个
temptext ItemTemplate =
其他的
= ItemTemplate
最后如果
设置匹配=无
端功能
***************************************
替换模板字符串
***************************************
私有函数itemresec(ByVal我,一个文本,一个数组)
暗淡的比赛,submatches
集比赛= getmatch(文本, $( D +))
如果匹配,则计数> 0然后
每个submatches比赛
文本=取代(文本,submatches.value,doquote(数组((submatches.submatches(((((0),我submatches.submatches)),1,1, 1)执行替换
下一个
ItemReSec = Text
其他的
= itemresec
最后如果
设置匹配=无
端功能
***************************************
全局变量函数
***************************************
私有子executefunction
暗淡的比赛,submatches、文本、ExeText
集比赛= getmatch(c_content,)
如果匹配,则计数> 0然后
每个submatches比赛
文本= submatches.submatches(0)(submatches.submatches(1)submatches.submatches(2)submatches.submatches(3)
执行exetext =文本
c_content =取代(c_content,submatches.value,exetext,1 - 1, 1)
下一个
最后如果
设置匹配=无
端子
***************************************
通用替换全局标记
***************************************
公共财产让集(ByVal,ByVal S)
昏暗的赛漫琦,Bstr,setsubmatch
系列赛漫琦= getmatch(c_content,())
如果赛漫琦计数>0。
在每一setsubmatch赛漫琦
执行BSTR =setsubmatch.submatches(1)(setsubmatch.submatches(3)
c_content =取代(c_content,setsubmatch。价值,BSTR,1 - 1, 1)
下一个
最后如果
组赛漫琦=没有
系列赛漫琦= getmatch(c_content,())
如果赛漫琦计数>0。
在每一setsubmatch赛漫琦
c_content =取代(c_content,setsubmatch。值,S,1,1, 1)
下一个
最后如果
组赛漫琦=没有
最后的财产
类的结束
类模板
私人c_char,c_path,c_filename,c_content,c_pageurl,c_currentpage,c_pagestr,replacepagestr
私人标签名
***************************************
'设置代码
***************************************
公共财产让焦(ByVal Str)
c_char = str
最后的财产
公共属性获取字符
c_char字符=
最后的财产
***************************************
设置模板文件夹路径
***************************************
公共财产让路径(ByVal Str)
c_path = str
最后的财产
公共财产获取路径
路径= c_path
最后的财产
***************************************
设置模板文件名
***************************************
公共财产让文件名(ByVal Str)
c_filename = str
最后的财产
公共属性获取文件名
文件名= c_filename
最后的财产
***************************************
获取模板文件的特定路径
***************************************
公共财产得到文件路径
如果Len(路径)> 0,那么路径=替换(路径,)
如果正确(路径,1),然后=路径
路径=路径文件名
最后的财产
***************************************
'设置分页URL
***************************************
公共财产让PageUrl(ByVal Str)
c_pageurl = str
最后的财产
公共财产得到pageurl
pageurl = c_pageurl
最后的财产
***************************************
设置分页当前页
***************************************
公共财产让currentpage(ByVal Str)
c_currentpage = str
最后的财产
公共财产得到currentpage
currentpage = c_currentpage
最后的财产
***************************************
输出内容
***************************************
公共属性刷新
写(c_content)反应。
最后的财产
***************************************
类初始化
***************************************
私有子class_initialize
标签名=PJBlog
c_char =UTF-8
replacepagestr =阵列(
端子
***************************************
过滤冲突字符
***************************************
私有函数doquote(ByVal Str)
doquote =取代(STR,CHR(34),)
端功能
***************************************
阶级终结
***************************************
私有子class_terminate
端子
***************************************
加载文件方法
***************************************
私有函数的LoadFromFile(ByVal cPath)
模糊的目标
设置obj = server.createobject(ADODB。流)
obj
类型= 2
模式= 3
开。
字符集字符。
位置=大小
LoadFromFile Server.MapPath(cpath)。
READTEXT LoadFromFile =。
关闭
结束
设置目标=没有
端功能
***********************************************
获取常规匹配对象
***********************************************
公共函数的GetMatch(ByVal Str,ByVal Rex)
暗区
设置注册表= new RegExp
与注册
IGNORECASE =真。
全局=真的
模式=雷克斯
设置=执行(STR)
如果杂志数> 0
集getmatch = MAG
其他的
集getmatch = server.createobject(脚本。词典)
最后如果
结束
设置注册表
端功能
***************************************
打开文件
***************************************
公共子开
c_content = LoadFromFile(路径)
端子
***************************************
缓冲区执行
***************************************
市民Sub Buffer
c_content = GridView(c_content)
电话executefunction
端子
***************************************
GridView
***************************************
私有函数GridView(ByVal o_content)
暗淡的比赛,submatches,潜台词
属性、内容
集比赛= getmatch(o_content,({ 的 } +))
如果匹配,则计数> 0然后
每个submatches比赛
属性= submatches.submatches(1)的kocms
内容= submatches.submatches(2)…
潜台词=过程(属性、内容)'返回所有流程执行的结果
o_content =取代(o_content,submatches.value,的潜台词(1)
下一个
最后如果
设置匹配=无
如果Len(replacepagestr(0))> 0然后确定标签变量值,如果有一个替代。
o_content =取代(o_content,replacepagestr(0),replacepagestr(1),1,1, 1)
replacepagestr =阵列(
最后如果
o_content GridView =
端功能
***************************************
明确的属性
***************************************
私有函数过程(一个属性,一个内容)
暗淡的比赛,submatches,文本
昏暗的matchtag,matchcontent
昏暗的DataSource,名元,页ID
数据源= :姓名:元= :页面= 0:ID =
集比赛= getmatch(属性、 S(1),(1))
如果匹配,则计数> 0然后
每个submatches比赛
matchtag = submatches.submatches(0)得到的属性名称
matchcontent = submatches.submatches(1)得到的属性值
如果Lcase(matchtag)=名字然后名字= matchcontent获取Name属性的值
如果Lcase(matchtag)=数据源,然后数据源= matchcontent'gets DataSource属性值
如果Lcase(matchtag)=元然后元= matchcontent获取元素的属性值
如果Lcase(matchtag)=页面然后页面= matchcontent获取页面的属性值
如果Lcase(matchtag)=ID然后ID = matchcontent id属性值的获取
下一个
如果Len(化名)> 0和Len(matchcontent)> 0
内容分析(数据源,名称,内容,页面,ID)的执行解析性质
如果Len(数据源)> 0然后属性=取代(属性,数据源=
如果页面> > 0,那么属性=替换(属性,页)
属性替换(属性
属性替换
过程=数组(属性、文本、元素)
其他的
进程=数组(属性,)
最后如果
其他的
进程=数组(属性,)
最后如果
设置匹配=无
端功能
***************************************
解析
***************************************
私有函数分析(ByVal ID,ByVal Name,一个内容,一个页面,ByVal)
模糊的数据
Select Case Lcase(化名)的选择数据源
案例回路数据= DataBind(ID,内容页,PageID)
案例数据=数据(ID,内容页,PageID)
最后选择
数据分析=
端功能
***************************************
绑定数据源
***************************************
私有函数DataBind(ByVal ID,一个内容,一个页面,ByVal PageID)
模糊的文字,火柴,submatches,潜台词
执行文本id(1)加载数据源
集比赛= getmatch(内容,({ 的 } +))
如果匹配,则计数> 0然后
每个submatches比赛
潜台词= ItemTemplate(submatches.submatches(0),文本,网页,PageID)的执行模块更换
内容=取代(内容,submatches.value,潜台词,1 - 1, 1)
下一个
DataBind =内容
其他的
= DataBind
最后如果
设置匹配=无
端功能
***************************************
匹配模板实例
***************************************
私有函数ItemTemplate(ByVal TextTag,ByVal文本,ByVal page,ByVal PageID)
暗淡的比赛,submatches,submatchtext
昏暗的secmatch,SecSubMatch
朦胧的我,TempText
昏暗的textlen,TextLeft,TextRight
集比赛= getmatch(null,({ 的 } +))
如果匹配,则计数> 0然后
每个submatches比赛
submatchtext = submatches.submatches(0)
---------------------------------------------
循环嵌套开始
---------------------------------------------
submatchtext = GridView(submatchtext)
---------------------------------------------
循环嵌套结束
---------------------------------------------
如果UBound(文,1)= 0
= temptext
其他的
= temptext
-----------------------------------------------
开始页面
-----------------------------------------------
如果Len(页)> 0和页> 0然后
如果Len(currentpage)= 0或currentpage = 0然后currentpage = 1
textlen = UBound(文,2)
textleft =(currentpage - 1)*页
textright = currentpage * - 1页
如果TextLeft的<< 0 textleft = 0
如果textright textlen然后textright > = textlen
c_pagestr =多页(textlen + 1页,currentpage,PageUrl,浮动权
如果int(Len(c_pagestr))> 0
replacepagestr =阵列(
其他的
replacepagestr =阵列(
最后如果
其他的
textleft = 0
textright = UBound(文,2)
最后如果
我要textright = textleft
temptext = temptext itemresec(我,submatchtext、文本)的加载模板内容
下一个
最后如果
下一个
temptext ItemTemplate =
其他的
= ItemTemplate
最后如果
设置匹配=无
端功能
***************************************
替换模板字符串
***************************************
私有函数itemresec(ByVal我,一个文本,一个数组)
暗淡的比赛,submatches
集比赛= getmatch(文本, $( D +))
如果匹配,则计数> 0然后
每个submatches比赛
文本=取代(文本,submatches.value,doquote(数组((submatches.submatches(((((0),我submatches.submatches)),1,1, 1)执行替换
下一个
ItemReSec = Text
其他的
= itemresec
最后如果
设置匹配=无
端功能
***************************************
全局变量函数
***************************************
私有子executefunction
暗淡的比赛,submatches、文本、ExeText
集比赛= getmatch(c_content,)
如果匹配,则计数> 0然后
每个submatches比赛
文本= submatches.submatches(0)(submatches.submatches(1)submatches.submatches(2)submatches.submatches(3)
执行exetext =文本
c_content =取代(c_content,submatches.value,exetext,1 - 1, 1)
下一个
最后如果
设置匹配=无
端子
***************************************
通用替换全局标记
***************************************
公共财产让集(ByVal,ByVal S)
昏暗的赛漫琦,Bstr,setsubmatch
系列赛漫琦= getmatch(c_content,())
如果赛漫琦计数>0。
在每一setsubmatch赛漫琦
执行BSTR =setsubmatch.submatches(1)(setsubmatch.submatches(3)
c_content =取代(c_content,setsubmatch。价值,BSTR,1 - 1, 1)
下一个
最后如果
组赛漫琦=没有
系列赛漫琦= getmatch(c_content,())
如果赛漫琦计数>0。
在每一setsubmatch赛漫琦
c_content =取代(c_content,setsubmatch。值,S,1,1, 1)
下一个
最后如果
组赛漫琦=没有
最后的财产
类的结束
声明:本文内容用于数码产品信息整理与选购参考,具体价格、库存、售后政策以官方渠道和电商页面实时信息为准。