广

ASP编程

  • IOS开发
  • android开发
  • PHP编程
  • JavaScript
  • ASP.NET
  • ASP编程
  • JSP编程
  • Java编程
  • 易语言
  • Ruby编程
  • Perl编程
  • AJAX
  • 正则表达式
  • C语言
  • 编程开发

    一个用ASP生成html的新方法

    2018-05-07 10:25:07 次阅读 稿源:互联网
    零七广告

          目前已经有很多生成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
        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
      %>

      
      使用范例:
      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

      希望这个函数对大家有点用,由于水平有限,有错的地方请大家指出,并希望能加以改进。

    零七网部分新闻及文章转载自互联网,供读者交流和学习,若有涉及作者版权等问题请及时与我们联系,以便更正、删除或按规定办理。感谢所有提供资讯的网站,欢迎各类媒体与零七网进行文章共享合作。

    零七广告
    零七广告
    零七广告
    零七广告