1. 目前已经有很多生成html的新闻系统,但是都是用的模板,本函数实现把asp页面产生的html代码保存成为一个html文件,这样就没有必要改动原来的页面就可以轻松完成一个生成html的新闻系统了。^_^
  2.   由于代码比较短,这里就不进行注释了
  3.  
  4. <%
  5. '当目标页面的包含文件即#include的页面里边存在response.End()的时候本程序有问题
  6. '注意:本文件一定要放在20041227111723.htm指向的文件的同一目录下
  7. dim hughchiu_rtcode
  8. Function get_exe_code(20041227111723.htm)
  9. dim execode
  10. dim tmp_str
  11. Dim re,re1,content,fso,f,aspStart,aspEnd
  12. dim ms,m
  13. execode = ""
  14. set fso=CreateObject("Scripting.FileSystemObject")
  15. set f=fso.OpenTextFile(server.mappath(20041227111723.htm))
  16. content=f.ReadAll
  17. f.close
  18. set f=nothing
  19. set fso=nothing
  20.  
  21. set re = new regexp
  22. re.ignorecase = true
  23. re.global = true
  24. re.pattern = "\<\%\@[^\%]+\%\>"
  25. content = re.replace(content,"")
  26.  
  27. re.global = false
  28. re.pattern = "\<\!\-\-\s*\#include\s*file\s*=\s*\""([^\""]+)\""\s*\-\-\>"
  29. do
  30. set ms = re.execute(content)
  31. if ms.count<>0 then
  32. set m = ms(0)
  33. tmp_str = get_exe_code(m.submatches(0))
  34. content = re.replace(content, tmp_str)
  35. else
  36. exit do
  37. end if
  38. loop
  39. set m = nothing
  40. set ms = nothing
  41.  
  42. re.pattern="^\s*="
  43. aspEnd=1
  44. aspStart=inStr(aspEnd,content,"<%")+2
  45.  
  46. set re1=new RegExp
  47. re1.ignorecase = true
  48. re1.global = false
  49. re1.pattern = "response\.Write(.+)"
  50.  
  51. do while aspStart>aspEnd+1
  52. execode = execode&vbcrlf&" hughchiu_rtcode = hughchiu_rtcode&"""&replace( replace(Mid(content,aspEnd,aspStart-aspEnd-2),"""",""""""), vbcrlf, """&vbcrlf&""")&""""&vbcrlf
  53. aspEnd=inStr(aspStart,content,"%\>")+2
  54. tmp_str = Mid(content,aspStart,aspEnd-aspStart-2)
  55.  
  56. do
  57. set ms = re1.execute(tmp_str)
  58. if ms.count<>0 then
  59. set m = ms(0)
  60. tmp_str = re1.replace(tmp_str, " hughchiu_rtcode = hughchiu_rtcode&"&m.submatches(0))
  61. else
  62. exit do
  63. end if
  64. loop
  65.  
  66. set m = nothing
  67. set ms = nothing
  68.  
  69. execode = execode& re.replace(tmp_str,"hughchiu_rtcode = hughchiu_rtcode&")
  70.  
  71. aspStart=inStr(aspEnd,content,"<%")+2
  72. loop
  73.  
  74. set re1 = nothing
  75. set re=nothing
  76.  
  77. execode = execode&vbcrlf&" hughchiu_rtcode = hughchiu_rtcode&"""&replace( replace(Mid(content,aspEnd), """", """"""), vbcrlf, """&vbcrlf&""" )&""""&vbcrlf
  78. get_exe_code = "<%"&execode&"%\>"
  79. End Function
  80.  
  81. function asp2html(20041227111723.htm)
  82. dim code
  83. code = replace( replace( replace( get_exe_code(20041227111723.htm), "hughchiu_rtcode = hughchiu_rtcode&"""""&vbcrlf, "" ), "<%", "" ), "%\>", "" )
  84. 'response.Write(code)
  85. execute(code)
  86. 'response.Write( hughchiu_rtcode )
  87. asp2html = hughchiu_rtcode
  88. end function
  89. %>
  90.  
  91. 使用范例:
  92.   set fso=CreateObject("Scripting.FileSystemObject")
  93.   set f=fso.CreateTextFile( server.mappath( "youpage.htm" ), true )
  94.   f.WriteLine( asp2html("youpage.asp") )
  95.   f.close
  96.   set f = nothing
  97.   set fso = nothing

  

一个用ASP生成html的新方法的更多相关文章

  1. ES5中新增的forEach等新方法的一些使用声明

    转载地址:http://www.zhangxinxu.com/wordpress/?p=3220 一.前言-索引 ES5中新增的不少东西,了解之对我们写JavaScript会有不少帮助,比如数组这块, ...

  2. [三卷天书]记一个asp.net生成两个日期范围内生成随机时间的方法

    想网上找个生成随机天数的方法找不到,后面只得自己写了,贴给大家方便使用 思路:算两个日期的相差天数,然后在0到相差天数的范围内生成随机数,再用结束时间的天数部分减去这个随机数,代码: /// < ...

  3. ASP组件AspJpeg(加水印)生成缩略图等使用方法

    ASP组件AspJpeg(加水印)生成缩略图等使用方法 作者: 字体:[增加 减小] 类型:转载 时间:2012-12-17我要评论 ASPJPEG是一款功能相当强大的图象处理组件,用它可以轻松地做出 ...

  4. python 单例模式,一个类只能生成唯一的一个实例,重写__new__方法详解

    单例:一个类只能生成唯一的一个实例 每个类只要被实例化了,他的私有属性 '_instance'就会被赋值,这样理解对吗 对 #方法1,实现__new__方法 #并在将一个类的实例绑定到类变量_inst ...

  5. 比较ASP生成静态HTML文件的几种方法

    将动态页面转换生成静态Html文件有许多好处,比如生成html网页有利于被搜索引擎收录(特别是对接受动态参数的页面).前台访问时,脱离了数据访问,减轻对数据库访问的压力,加快网页打开速度. 当然,凡事 ...

  6. 【C#代码实战】群蚁算法理论与实践全攻略——旅行商等路径优化问题的新方法

    若干年前读研的时候,学院有一个教授,专门做群蚁算法的,很厉害,偶尔了解了一点点.感觉也是生物智能的一个体现,和遗传算法.神经网络有异曲同工之妙.只不过当时没有实际需求学习,所以没去研究.最近有一个这样 ...

  7. 提高ASP.net性能的十种方法

    提高ASP.net性能的十种方法 2014-10-24  空城66  摘自 博客园  阅 67  转 1 转藏到我的图书馆   微信分享:   今天无意中看了一篇关于提高ASP.NET性能的文章,个人 ...

  8. T4 模板 : 一种提升ASP.NET MVC开发速度方法

    最近由于需要在框架中提供一些自定义模板的功能,找到了一篇博客,可惜似乎是翻译工具直接翻的,读不通顺,就试着自己翻译下,我不会完全翻译原文的句子,可能会对原文进行小范围的我认为更合适的句子并添加些注释, ...

  9. (摘录)26个ASP.NET常用性能优化方法

    数据库访问性能优化 数据库的连接和关闭 访问数据库资源需要创建连接.打开连接和关闭连接几个操作.这些过程需要多次与数据库交换信息以通过身份验证,比较耗费服务器资源. ASP.NET中提供了连接池(Co ...

随机推荐

  1. ubuntu下PHP支持cURL

    公司项目需要,注册需要验证手机号码,其中需要LAMP支持cURL.由于事先安装平台的时候,并没有注意到这一点,所以编译PHP5的时候,并没有使用参数--with-curl.后来需要的时候,查一些参考方 ...

  2. Spring基础知识汇总 Java开发必看

    Spring简介 Spring框架由Rod Johnson开发,2004年发布了Spring框架的第一版.Spring是一个从实际开发中抽取出来的框架,因此它完成了大量开发中的通用步骤,留给开发者的仅 ...

  3. 问题-WIN7 ..\Bin\InitCC32.exe".进程无法访问(拒绝访问)

    问题现象: 问题原因:是InitCC32.exe没有权限. 问题处理:在DELPHI7的安装目录里设置用户权限,加入EVE... 这个用户.

  4. [OC Foundation框架 - 3] 指向指针的指针

    使用函数改变NSString void changeStr2(NSString **str3) { *str3 = "; } int main(int argc, const char * ...

  5. weblogic11g 安装——linux 无图形界面

    weblogic11g 安装——linux下无weblogic安装图形界面 注意:此次安装,没做server.ip .系统规划 目的:学习weblogic11g 在linux下  无图形安装的过程 j ...

  6. jquery判断input值不为空 val()

    <input type="text" class="searchbox" /> <script type='text/javascript'& ...

  7. 【C++深入浅出】设计模式学习之观察者模式

    前言 前两天学习了weak_ptr以后还是不甚明了,一则需要实际应用去锤炼,二来就是不懂观察者模式. 正文 观察者模式又叫发布-订阅模式,定义了一种一对多的依赖关系,让多个观察者对象同时监听某一主题对 ...

  8. mysql 索引建立

    如何建立mysql索引? 创建索引原则 1.左前缀原则 : mysql索引匹配会从右匹配,到遇到( >  < between like)终止.如 我们建立索引(a,b,c,d), a = ...

  9. node.js在windows下的学习笔记(5)---用NODE.JS创建服务器和客户端

    //引入http模块 var http = require('http'); //调用http的createServer的方法,这个方法有一个回调函数,这个回调数 //的作用是当有请求发送给服务器的时 ...

  10. mysqldump原理5

    http://blog.csdn.net/niu870781892/article/details/6186078 导出多张表的时候表之间用空格分开: # mysqldump -h192.168.25 ...