這裡是ASP讀取數據庫內容並生成靜態頁面,這裡這個生成靜態頁面的函數可通用
數據庫結構:
id(自動編號)
標題 title(文本)
內容 content(備注)
添加時間 addtime(時間) 這裡用來做靜態頁面的文件名
'連接數據庫文件
conn.ASP
< %
DB="database/database.mdb"
path=Server.MapPath(DB)
set conn=server.createobject("adodb.Connection")
connstr="provider=Microsoft.Jet.OLEDB.4.0;Data Source="&path
conn.Open connstr
Set rs=server.CreateObject("adodb.recordset")
% >
'動態頁面
news.ASP
< !-- #include file="conn.ASP" -- >
< %
id=request("id")
sql="select * from news where id="&id
rs.open sql,conn,1,1
If rs.eof Then
Else
title=rs("title")
content=rs("content")
End If
rs.close
% >
<style>
body td {font-size:12px;}
</style>
<TITLE> < %=title% > </TITLE>
<TABLE border="0" cellpadding="0" cellspacing="0" width="500">
<TR>
<TD >< %=title% ></TD>
</TR>
<TR>
<TD align="center"><div >< %=content% ></div></TD>
</TR>
</TABLE>
'生成靜態頁面代碼
createHtml.ASP
< !-- #include file="conn.ASP" -- >
< %
sql="select * from news"
rs.open sql,conn,1,1
If rs.eof Then
Else
path5="./Html/" '這個為生成後文件路徑
Do While Not rs.eof
filename=Replace(Replace(Replace(rs("addtime"),":",""),"-","")," ","")&".Html" '這個為生成後的文件名
url="http://localhost/netfrIEnd/news.asp?id="&rs("id") '這個為動態頁面地址,必須是http://****.ASP格式的
Call createHtml(url,filename,path5)
rs.movenext
loop
End If
rs.close
Set rs=Nothing
Set conn=nothing
'功能:讀取數據庫內容,生成靜態頁面
'來自:www.ASPprogram.cn
'作者:wangsdong
'參數說明:
' url是動態頁面的地址,必須是http://*****/**.ASP格式
' filename為生成後的文件名
' path為存儲生成後文件的文件夾名
'備注:支持原創程序,請保留此信息,謝謝
Function createHtml(url,filename,path)
Set MyFileObject=Server.CreateObject("Scripting.FileSystemObject")
path1=server.mappath(path)&"\"&filename
Set MyTextFile=MyFileObject.CreateTextFile(path1)
strurl=url
strTmp = GetHTTPPage(trim(strurl))
MyTextFile.WriteLine(strTmp)
MytextFile.Close
response.write "生成"&filename&"成功<br>"
Set MyFileObject=nothing
End function
Function getHTTPPage(url)
On Error Resume Next
dim http
set http=Server.createobject("Microsoft.XMLHTTP")
Http.open "GET",url,false
Http.send()
if Http.readystate<>4 then
exit function
end if
getHTTPPage=bytesToBSTR(Http.responseBody,"GB2312")
set http=nothing
If Err.number<>0 then
Response.Write "<p align='center'><font color='red'><b>服務器獲取文件內容出錯</b></font></p>"
Err.Clear
End If
End Function
Function BytesToBstr(body,Cset)
dim obJStream
set obJStream = Server.CreateObject("adodb.stream")
obJStream.Type = 1
obJStream.Mode =3
obJStream.Open
obJStream.Write body
obJStream.Position = 0
obJStream.Type = 2
obJStream.Charset = Cset
BytesToBstr = obJStream.ReadText
obJStream.Close
set obJStream = nothing
End Function
% >
已經搞定,現在就可以運行這個createHtml.ASP文件了,如果不成功,注意一下動態頁面的地址,根據IIS進行更換