zoukankan      html  css  js  c++  java
  • 一个用ASP生成html的新方法

    目前已经有很多生成html的新闻系统,但是都是用的模板,本函数实现把asp页面产生的html代码保存成为一个html文件,这样就没有必要改动原来的页面就可以轻松完成一个生成html的新闻系统了。^_^ 
      由于代码比较短,这里就不进行注释了
    
    <%
    '当目标页面的包含文件即#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*#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
    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 
    

      

  • 相关阅读:
    设计模式 ( 十七) 状态模式State(对象行为型)
    Intellij13 IDEA常用快捷键 (mac 10.5 +),优化,使用出现的问题汇总
    Web服务器及Web应用服务器
    阮一峰的网络日志
    双击退出的实现
    完成3DM以后的总结(2).Xutils的简单使用
    完成3DM以后的总结(1).PullToRefresh
    软考之路之j2se总结
    2013-2014年终总结
    牛腩新闻发布系统之获取IP
  • 原文地址:https://www.cnblogs.com/uuxanet/p/3282873.html
Copyright © 2011-2022 走看看