注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

Programmer's World

记录成长的点点滴滴

 
 
 

日志

 
 

aspcms增加if嵌套  

2015-12-02 00:32:14|  分类: asp |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |
inc下面的MainClass里找到parseIf函数 用下面的函数替换
Public Function parseIf(strIndex)
if not isExistStr(content,"{if"&strIndex&":") then Exit Function
dim matchIf,matchesIf,strIf,strThen,strThen1,strElse1,labelRule2,labelRule3
dim ifFlag,elseIfArray,elseIfSubArray,elseIfArrayLen,resultStr,elseIfLen,strElseIf,strElseIfThen,elseIfFlag
labelRule="{if"&strIndex&":([\s\S]+?)}([\s\S]*?){end\s+if"&strIndex&"}":labelRule2="{elseif"&strIndex&"":labelRule3="{else"&strIndex&"}":elseIfFlag=false

regExpObj.Pattern=labelRule
set matchesIf=regExpObj.Execute(content)
for each matchIf in matchesIf
strIf=matchIf.SubMatches(0):strThen=matchIf.SubMatches(1)

'echo "<h1>"&strIf &"</h1>"
if instr(strThen,labelRule2)>0 then
elseIfArray=split(strThen,labelRule2):elseIfArrayLen=ubound(elseIfArray):elseIfSubArray=split(elseIfArray(elseIfArrayLen),labelRule3)
resultStr=elseIfSubArray(1)

Execute("if "&strIf&" then resultStr=elseIfArray(0)")
for elseIfLen=1 to elseIfArrayLen-1
strElseIf=getSubStrByFromAndEnd(elseIfArray(elseIfLen),":","}","")
strElseIfThen=getSubStrByFromAndEnd(elseIfArray(elseIfLen),"}","","start")
Execute("if "&strElseIf&" then resultStr=strElseIfThen")
Execute("if "&strElseIf&" then elseIfFlag=true else elseIfFlag=false")
if elseIfFlag then exit for
next
Execute("if "&getSubStrByFromAndEnd(elseIfSubArray(0),":","}","")&" then resultStr=getSubStrByFromAndEnd(elseIfSubArray(0),""}"","""",""start""):elseIfFlag=true")
content=replace(content,matchIf.value,resultStr)
else
if instr(strThen,labelRule3)>0 then
strThen1=split(strThen,labelRule3)(0)
strElse1=split(strThen,labelRule3)(1)
Execute("if "&strIf&" then ifFlag=true else ifFlag=false")
if ifFlag then content=replace(content,matchIf.value,strThen1) else content=replace(content,matchIf.value,strElse1)
else
Execute("if "&strIf&" then ifFlag=true else ifFlag=false")
if ifFlag then content=replace(content,matchIf.value,strThen) else content=replace(content,matchIf.value,"")
end if
end if

elseIfFlag=false
next
set matchesIf=nothing
if strIndex="" then strIndex=0
if instr(content,"{if"&strIndex+1&":")>0 then parseIf(strIndex+1) else Exit Function
End Function


并在最下面找到
parseIf()
用下面的替换 有多少if加多少个
parseIf("")
parseIf("1")
  评论这张
 
阅读(15)| 评论(0)
推荐 转载

历史上的今天

在LOFTER的更多文章

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2017