如何将ASP网页生成HTML网页?

如何将ASP网页生成HTML网页?,第1张

分类: 电脑/网络 >>程序设计 >>其他编程语言

问题描述:

如题

希望有成熟的代码可以供我参考

解析:

以下代码就是将一个ASP的动态页面生成一个HTML的静态页面,注释我已经加上了,自己看吧。

FileName = "Index"&Item_Classid&""

FilePath = Server.MapPath("/")&"\"&FileName

_Temp = _Temp&FilePath&"</LI>"

以上代码是在建立最终生成静态文件的名称和路径。

Do_Url = ""

Do_Url = Do_Url&Request.ServerVariables("SERVER_NAME")&"/detail"

Do_Url = Do_Url&"?Item_Classid="&Item_Classid

strUrl = Do_Url

以上代码是通过拼写Do_Url字符串来获得你所传递过来的文件路径和参数,并最终附值到strUrl变量中。

dim objXmlHttp

set objXmlHttp = Server.CreateObject("Microsoft.XMLHTTP")

objXmlHttp.open "GET",strUrl,false

objXmlHttp.send()

以上这段代码是在通过你所传递过来的strUrl解析该页面中的HTML代码;关键是这句(objXmlHttp.open "GET",strUrl,false )。

Dim binFileData

binFileData = objXmlHttp.responseBody

以上代码是将解析好的HTML代码附到binFileData中

Dim objAdoStream

set objAdoStream = Server.CreateObject("ADODB.Stream")

objAdoStream.Type = 1

objAdoStream.Open()

objAdoStream.Write(binFileData)

objAdoStream.SaveToFile FilePath,2

objAdoStream.Close()

以上这段代码是建立一个文件对象,将所拥有HTML代码的变量binFileData写到该文件中。

_Temp = _Temp&"<UL>"

Response.Write _Temp

Response.Write ( "<BR>" )

Response.Write ( "成功生成文件:" )

以上几句就不用我解释了。。。。:)

其实上面这个做法并不是很科学,还可以将代码更完善些。建议你将这个步骤封装到两个FUNCTION中,这样比较清晰并且方便重复调用,

CreateFile:用于建立生成的静态文件,其中调用GetUrlText进行脚本解析。

Function CreateFile(fileName,url)

Dim fs,fname

Set fs = Server.CreateObject("Scripting.FileSystemObject")

Set fname = fs.CreateTextFile(FileName, True)

fname.Write GetUrlText(url)

fname.Close

Set fname = Nothing

Set fs = Nothing

End Function

GetUrlText:用语解析传递回来的ASP页面

Function GetUrlText(url)

Dim xmlHttp

Set xmlHttp = server.createobject("MSXML2.ServerXMLHTTP")

xmlHttp.setTimeouts 10000,10000,10000,30000

xmlHttp.Open "GET",url, False

xml.setRequestHeader "CONTENT-TYPE", "text/xml"

xmlHttp.Send

If xmlHttp.ReadyState = 4 Then

GetUrlText = xmlHttp.responseText

Else

GetUrlText = ""

End If

End Function

里面URL就是你传递过来的地址,而FileName就是生成文件的地址,你在调用时直接调用CreateFile,将FileName和URL传递过去就可以了,怎么样,是不是比上面的看起来清晰很多:)

Asp转换为HTML2008-02-15 20:16字段c_id:自动编号,主关键字

字段c_title:文本类型,保存文章标题

字段c_content:备注类型,保存文章内容

字段c_filepath:文本类型,保持生成文件的路径地址

字段c_time:日期/时间类型,默认值:Now()

三、页面需求设计

1、首先建立一个存放HTML页的文件夹

在文件同一目录下,建立文件夹newsfile,夹子内部主要存放生成的HTML页面,当然内部还会采用程序方式建立以日期命名的子文件夹,以方便浏览以及管理。

2、功能函数页面lib.asp

引用:

<%

'生成文件名的函数

function makefilename(fname)

fname = fname

fname = replace(fname,"-","")

fname = replace(fname," ","")

fname = replace(fname,":","")

fname = replace(fname,"PM","")

fname = replace(fname,"AM","")

fname = replace(fname,"上午","")

fname = replace(fname,"下午","")

makefilename=fname &".shtml"

end function

'保持数据格式不变的函数

function HTMLEncode(fString)

fString = replace(fString, ">", ">")

fString = replace(fString, "<", "<")

fString = Replace(fString, CHR(32), " ")

fString = Replace(fString, CHR(13), "")

fString = Replace(fString, CHR(10) &CHR(10), "<br>")

fString = Replace(fString, CHR(10), "<br>")

HTMLEncode = fString

end function

%>

3、数据库连接页面conn.asp

完成数据库的字符串连接方法

<%

set conn = Server.CreateObject("ADODB.Connection")

connstr = "Provider=Microsoft.Jet.OLEDB.4.0Data Source="&Server.MapPath("asp2html.mdb")

conn.Open connstr

%>

4、信息输入页面add.html

其实很简单,就是表单嘛。注意action是跳转到addit.asp

引用:

<form action="addit.asp" method="post">

Title:<input type="text" name="c_title"><br>

Content:<br>

<textarea name="c_content" rows="8" cols="30"></textarea><br>

<input type="submit" value="Add">

<input type="reset" value="Reset">

</form>

5、处理数据功能显示页面addit.asp

首先是处理接受过来的数据,并将值写入数据库;接着将模板代码进行引用,并将其中特殊代码转换为接受值,最终通过FSO生成HTML页面。其中需要注意的还有,生成文件的路径地址保存至数据库表。

引用:

<%'容错处理

On Error Resume Next

%>

<!--#include file="conn.asp" -->

<!--#include file="lib.asp" -->

<%'接受传递值

c_title=request.form("c_title")

c_content=request.form("c_content")

%>

<%'生成HTML文件名,建立文件夹,指定文件路径

fname = makefilename(now()) 'makefilename为自定义函数

folder = "newsfile/"&date()&"/"

filepath = folder&fname

%>

<%'将接受值及路径保持至数据库表

sql = "Select * from c_news"

Set rs = Server.CreateObject ("ADODB.Recordset")

rs.Open sql,conn,3,2

rs.addnew

rs("c_title")=c_title

rs("c_content")=c_content

rs("c_filepath")=filepath

rs.update

rs.close

Set rs = Nothing

%>

<%'打开模板代码,并将其中特殊代码转变为接受值

sql1="select m_id,m_html from c_moban where m_id=1"

set rs1=Server.CreateObject("adodb.recordset")

rs1.open sql1,conn,1,1

mb_code=rs1("m_html")

rs1.close

set rs1=nothing

conn.close

set conn=nothing

c_title=htmlencode(c_title)

c_content=htmlencode(c_content)

mb_code=replace(mb_code,"$cntop{LogContent}quot,now())

mb_code=replace(mb_code,"$cnleft{LogContent}quot,c_title)

mb_code=replace(mb_code,"$cnright{LogContent}quot,c_content)

%>

<%'生成HTML页面

Set fso = Server.CreateObject("Scripting.FileSystemObject")

fso.CreateFolder(Server.MapPath(folder))

Set fout = fso.CreateTextFile(Server.MapPath(filepath))

fout.WriteLine mb_code

fout.close

%>

文章添加成功,<a href="showit.asp">浏览</a>


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/7212874.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-03
下一篇 2023-04-03

发表评论

登录后才能评论

评论列表(0条)

保存