asp生成html

news/2024/7/10 22:13:50 标签: HTML, ASP, F#
前已经有很多生成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*\#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(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

http://www.niftyadmin.cn/n/588611.html

相关文章

设计模式学习之路(十二)——结构型模式之代理模式

前言&#xff1a; 一、模式定义 代理模式&#xff08;Proxy&#xff09;&#xff0c;为其他对象提供一种代理以控制对这个对象的访问。 在某些情况下&#xff0c;一个客户不想或者不能直接引用一个对象&#xff0c;此时可以通过一个称之为“代理”的第三者来实现间接引用。代…

java图片处理代码

下载图片 判断宽高 小工具 package utilw;import java.awt.image.BufferedImage; import java.io.ByteArrayOutputStream; import java.io.DataInputStream; import java.io.File; import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.F…

卷积在图像处理中的应用

https://blog.csdn.net/qq_35144795/article/details/78138223

阿里智力题之——烧绳法计算15分钟、30分钟、45分钟、75分钟

一、简单概述 在各位面试的时候&#xff0c;阿里、字节跳动等一些公司喜欢在进行C开发面试的时候出一些智力题来考验大家的逻辑思路。烧一根不规则的绳子&#xff0c;计算时间就是其中的一道经典题目。 二、烧绳子问题介绍 燃烧一根不均匀的绳子需要一小时&#xff0c;怎么做…

Asp生成HTML方法

Asp生成HTML方法大全2006年08月22日 星期二 10:13方法一:FSOSet fs CreateObject("Scripting.FileSystemObject")NewFileServer.MapPath("/asp/chap06/at/newfile.html")新建一文件/newfile.html,若该文件已存在&#xff0c;则覆盖它Set a fs.CreateText…

java处理pdf代码

pdf转txt 小工具 package utilw;import java.io.File; import java.io.FileOutputStream; import java.io.PrintWriter;import org.apache.pdfbox.pdmodel.PDDocument; import org.apache.pdfbox.text.PDFTextStripper;public class PdfUtil {public static void main(String…

阿里巴巴技术部面试题——经典智力问题收集

技术部面试题——经典智力问题收集 第一部分题目开始&#xff1a; 1、有两根不均匀分布的香&#xff0c;香烧完的时间是一个小时&#xff0c;你能用什么方法来确定一段15分钟的时间&#xff1f; 2、一个经理有三个女儿&#xff0c;三个女儿的年龄加起来等于13&#xff0c;三个…