目前已經(jīng)有很多生成html的新聞系統(tǒng),但是都是用的模板,本函數(shù)實(shí)現(xiàn)把a(bǔ)sp頁(yè)面產(chǎn)生的html代碼保存成為一個(gè)html文件,這樣就沒(méi)有必要改動(dòng)原來(lái)的頁(yè)面就可以輕松完成一個(gè)生成html的新聞系統(tǒng)了。
<% 當(dāng)目標(biāo)頁(yè)面的包含文件即#include的頁(yè)面里邊存在response.End()的時(shí)候本程序有問(wèn)題 注意:本文件一定要放在filename指向的文件的同一目錄下 dim hughchiu_rtcode Function get_exe_code(filename) 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(filename)) 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 = "\<\!\-\-\s*\#include\s*file\s*=\s*\""([^\""]+)\""\s*\-\-\>" 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(filename) dim code code = replace( replace( replace( get_exe_code(filename), "hughchiu_rtcode = hughchiu_rtcode&"""""&vbcrlf, "" ), "<%", "" ), "%\>", "" ) response.Write(code) execute(code) response.Write( hughchiu_rtcode ) asp2html = hughchiu_rtcode end function %>