PHP中有一個叫smarty,可以實現在靜態頁面上加一些自定義的if語句,運行後實現自己想要的效果,現在我想將這種思想用ASP來實現,經過一天的測試,終於搞定,現在放到這裡與大家共享。
靜態頁面:1.Html
<TABLE border="1" width="500">
<TR bgcolor="<!-- if 1>22 then -->#ff0000<!-- else -->#cccccc<!-- end if -->">
<TD>ASPprogram.cn</TD>
<TD>aaaaaaa</TD>
</TR>
<TR bgcolor="<!-- if 2>1 then -->#ff0000<!-- end if -->">
<TD>bbbbbbb</TD>
<TD>cccccc</TD>
</TR>
</TABLE>
要得到的效果是:
<TABLE border="1" width="500">
<TR bgcolor="#cccccc">
<TD>ASPprogram.cn</TD>
<TD>aaaaaaa</TD>
</TR>
<TR bgcolor="#ff0000">
<TD>bbbbbbb</TD>
<TD>cccccc</TD>
</TR>
</TABLE>
實現的代碼是:1.ASP
< %
’===========================================
’ 代碼功能:ASP實現靜態頁面上加自定義的if語句
’ 作 者:wangsdong
’ 網 站: http://www.ASPprogram.cn
’ 文章為作者原創,轉載請注明文章出處、保留作者
’ 信息,謝謝支持!
’===========================================
Set MyFileObject=Server.CreateObject("Scripting.FileSystemObject")
path=server.mappath("1.Html")
Set MyTextFile=MyFileObject.OpenTextFile(path)
str=MyTextFile.readall
MyTextFile.Close
Set MyFileObject=Nothing
s="<!-- if .* end if -->"
response.write RegExpTest(str,s)
Function regExReplace(sSource,patrn, replStr)
Dim regEx, str1
str1 = sSource
Set regEx = New RegExp
regEx.Pattern = patrn
regEx.IgnoreCase = True
regEx.Global = True
regExReplace = regEx.Replace(str1, replStr)
End Function
Function RegExpTest(strng,s)
strng1=strng
Dim regEx, Match, Matches ’ 建立變量。
Set regEx = New RegExp ’ 建立正則表達式。
regEx.Pattern = s ’ 設置模式。
regEx.IgnoreCase = True ’ 設置是否區分大小寫。
regEx.Global = True ’ 設置全局替換。
Set Matches = regEx.Execute(strng) ’ 執行搜索。
For Each Match in Matches ’ 遍歷 Matches 集合。
str0=match.value
str0=Right(str0,Len(str0)-4)
str0=Left(str0,Len(str0)-4)
str2=Replace(str0,"<!--","""")
str2=Replace(str2,"-->","kkk=""")
str2=Replace(str2,"end if","")
execute(str2)
response.write vbnewline
strng1=regExReplace(strng1,Match.value,kkk)
Next
RegExpTest = strng1
end Function
% >