目前已经有很多生成html的新闻系统,但是都是用的模板,本函数实现把asp页面产生的html代码保存成为一个html文件,这样就没有必要改动原来的页面就可以轻松
完成一个生成html的新闻系统了。^_^
由于代码比较短,这里就不进行注释了
<%
'当目标页面的包含文件即#include的页面里边存在response.End()的时候本程序有问题
'注意:本文件一定要放在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*#includes*files*=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 aspStart=inStr(aspEnd,content,"<%")+2 &""""&vbcrlf
function asp2html(filename) |
使用范例:
以下为引用的内容: f.WriteLine( asp2html("youpage.asp") ) f.close set f = nothing set fso = nothing |