ASP生成html的新方法

来源:asp之家 时间:2011-04-02 11:04:00 

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

代码如下:

<% 
'当目标页面的包含文件即#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 = "\<\!\-\-\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(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,生成,html
0
投稿

猜你喜欢

  • 浅析网页Transitional和Strict的文档声明的区别

    2009-02-17 12:45:00
  • Scripting.Dictionary 对象

    2007-10-13 09:46:00
  • 让SQL Server数据库自动执行管理任务(一)

    2009-03-20 10:35:00
  • 用 onerror 获取错误信息 js Debug

    2008-11-03 19:08:00
  • 走中国特色的网站重构道路

    2010-04-08 16:10:00
  • 自己重新写了一个JavaScript的对象克隆函数

    2008-08-03 16:47:00
  • SQL Server 2005 FOR XML嵌套查询使用详解

    2009-01-06 11:20:00
  • 关于团队建设以及网站建设的琐事

    2009-03-19 13:31:00
  • 如何在数据库中限制检索行数?

    2010-06-22 21:04:00
  • asp下查询xml的实现代码

    2011-04-19 10:37:00
  • 你是真正的用户体验设计者吗? Ⅴ

    2008-04-19 18:32:00
  • 如何绕过ODBC直接访问SQL Server?

    2010-05-18 18:13:00
  • 让IE6更快的走向灭亡

    2010-02-03 15:05:00
  • 如何根据用户银行帐户余额的多少进行显式的提交或终止?

    2009-11-22 19:28:00
  • 关于asp分页的新想法

    2008-09-06 12:53:00
  • 服务器响应HTTP的类型ContentType大全

    2007-10-23 10:21:00
  • FCKeditor 编辑器实战技巧 Ⅰ

    2008-10-08 10:22:00
  • 把网页中的电话号码生成图片的ASP程序

    2008-11-07 16:12:00
  • 浅析设计与内容呈现的关系

    2009-08-06 18:12:00
  • XMLHTTP资料

    2008-09-05 17:20:00
  • asp之家 网络编程 m.aspxhome.com