ASP生成html的新方法
ASP生成html的新方法
发布时间:2016-12-29 来源:查字典编辑
摘要:由于代码比较短,这里就不进行注释了复制代码代码如下:aspEnd+1execode=execode&vbcrlf&"hughchiu_rtc...

由于代码比较短,这里就不进行注释了

复制代码 代码如下:

<%

'当目标页面的包含文件即#include的页面里边存在response.End()的时候本程序有问题

'注意:本文件一定要放在20041227111723.htm指向的文件的同一目录下

dim hughchiu_rtcode

Function get_exe_code(20041227111723.htm)

dim execode

dim tmp_str

Dim re,re1,content,fso,f,aspStart,aspEnd

dim ms,m

execode = ""

set fso=CreateObject("Scripting.FileSystemObject")

set f=fso.OpenTextFile(server.mappath(20041227111723.htm))

content=f.ReadAll

f.close

set f=nothing

set fso=nothing

set re = new regexp

re.ignorecase = true

re.global = true

re.pattern = "<%@[^%]+%>"

content = re.replace(content,"")

re.global = false

re.pattern = "<>"

do

set ms = re.execute(content)

if ms.count<>0 then

set m = ms(0)

tmp_str = get_exe_code(m.submatches(0))

content = re.replace(content, tmp_str)

else

exit do

end if

loop

set m = nothing

set ms = nothing

re.pattern="^s*="

aspEnd=1

aspStart=inStr(aspEnd,content,"<%")+2

set re1=new RegExp

re1.ignorecase = true

re1.global = false

re1.pattern = "response.Write(.+)"

do while aspStart>aspEnd+1

execode = execode&vbcrlf&" hughchiu_rtcode = hughchiu_rtcode&"""&replace( replace(Mid(content,aspEnd,aspStart-aspEnd-2),"""",""""""), vbcrlf, """&vbcrlf&""")&""""&vbcrlf

aspEnd=inStr(aspStart,content,"%>")+2

tmp_str = Mid(content,aspStart,aspEnd-aspStart-2)

do

set ms = re1.execute(tmp_str)

if ms.count<>0 then

set m = ms(0)

tmp_str = re1.replace(tmp_str, " hughchiu_rtcode = hughchiu_rtcode&"&m.submatches(0))

else

exit do

end if

loop

set m = nothing

set ms = nothing

execode = execode& re.replace(tmp_str,"hughchiu_rtcode = hughchiu_rtcode&")

aspStart=inStr(aspEnd,content,"<%")+2

loop

set re1 = nothing

set re=nothing

execode = execode&vbcrlf&" hughchiu_rtcode = hughchiu_rtcode&"""&replace( replace(Mid(content,aspEnd), """", """"""), vbcrlf, """&vbcrlf&""" )&""""&vbcrlf

get_exe_code = "<%"&execode&"%>"

End Function

function asp2html(20041227111723.htm)

dim code

code = replace( replace( replace( get_exe_code(20041227111723.htm), "hughchiu_rtcode = hughchiu_rtcode&"""""&vbcrlf, "" ), "<%", "" ), "%>", "" )

'response.Write(code)

execute(code)

'response.Write( hughchiu_rtcode )

asp2html = hughchiu_rtcode

end function

%>

使用范例:

复制代码 代码如下:

set fso=CreateObject("Scripting.FileSystemObject")

set f=fso.CreateTextFile( server.mappath( "youpage.htm" ), true )

f.WriteLine( asp2html("youpage.asp") )

f.close

set f = nothing

set fso = nothing

推荐文章
猜你喜欢
附近的人在看
推荐阅读
拓展阅读
相关阅读
网友关注
最新ASP教程学习
热门ASP教程学习
编程开发子分类