asp生成静态页面例子

<%
response.Buffer=false
%>
<input type="text" id="n" style="height:25px; padding:5px;border:1px #eeeeee solid; color:#FF0000; font-size:12px; width:200px; position:absolute; left:500;top:300px;" >
<script>
function getfun(obj,state)
{
if(obj!="")
{
var n = document.getElementById("n").value=obj
}
if(state!="" && state=="ok")
{
alert("恭喜,生成静态页面完毕");
}
//alert(n)
}
</script>
<%
Db="../data/#@$!%^@.mdb" '首页是要连接数据库
ConnStr = "Provider = Microsoft.Jet.OLEDB.4.0;Data Source = " & Server.MapPath(MyDbPath & db)
On Error Resume Next
Set Conn = Server.CreateObject("ADODB.Connection")
Set Rs=Server.CreateObject("ADODB.Recordset")
Conn.Open ConnStr

'--------------------创建存放.html的文件夹
dim counter,dir,htmldir,tempfile
fileName =server.mappath("product.html")
htmldir =server.mappath("./newhtml/")
set fso = server.CreateObject("Scripting.FileSystemObject")
if not fso.FolderExists(htmldir) = true then
if not fso.createFolder(htmldir) =false then
Response.write "creatge folder sucessfull.<br>"
end if
end if

'------------得到总共要生成的数量也就是生成的分页数
sql="select * from product" 
set rs=server.createObject("ADODB.Recordset") 
rs.open sql,conn,1,1 
rs.pagesize=15 
totalpage=rs.pagecount '总的页数
rs.close 
set rs=nothing 

'-------------从数据库中找得到数据并设置分页
for j=1 to totalpage 
set rs = server.CreateObject("adodb.recordset")
rs.pagesize=15 '总记数
rs.open "select * from product order by id desc",conn,1,3
if not rs.eof then '设置当前页的页码为 j
rs.AbsolutePage = j
else
rs.AbsolutePage = j+1 '如果是下一页了那么j就要加1
end if  
for i=0 to rs.PageSize '这是输出列表和一个小算法,当图片数有大于四的时候就换一行
if i mod 4 = 0 then
product = product & "</tr>"
end if
'下面是用product这个变量存放获取数据并累积 如pagesize是多少,就累积多少条记录
if rs.EOF or rs.BOF then exit for
product = product &"<td>"
product = product &"<table width=153 height=161 border=0 cellspacing=0 cellpadding=0>"
product = product &"<tr>"
product = product &"<td><a href=product_"&date()&"_"&rs("id")&".html><img src=admin/"&rs("img")&" width=141 height=92 border=0/></a></td>"
product = product &"</tr>"
product = product & "<tr>"
product = product & "<td width=140 align=center bgcolor=#EEEEEE><a href=product_"&date()&"_"&rs("id")&".html>"&rs("Title")&"</a></td>"
product = product & "</tr>"
product = product & "<tr>"
product = product & "<td height='30'>&nbsp;</td>"
product = product & "</tr>"
product = product & "</table></td>"
upp = j -1 '设置上一页
nextp = j+1 '设置下一页
if upp <=1 then upp =1 '如果上一页小于就表示当前页就是第一页不需要减1
if nextp>=rs.pagecount then nextp = rs.pagecount '如果下一页正好是最后一页也就不要再加1
set fso = server.CreateObject("Scripting.FileSystemObject") '创建文件对像fso
set txt = fso.openTextFile(fileName,1)'1 表示只读打开 
content = txt.ReadAll() '读取模版文件中的全部内容
content = replace(content,"{Title}","深圳市信息技术有限公司") '替换模版中的内容
content = replace(content,"{myName}","RED Cherry")
content = replace(content,"{mobil}","122486006")
content = replace(content,"{producs}",product)
content = replace(content,"{首页}","<a href='product_"&date()&"_"&"1.html'>首页</a>") '让模版中的分布生成有链接的分页
content = replace(content,"{上一页}","<a href='product_"&date()&"_"&upp&".html'>上一页</a>")
content = replace(content,"{下一页}","<a href='product_"&date()&"_"&nextp&".html'>下一页</a>")
content = replace(content,"{最后一页}","<a href='product_"&date()&"_"&totalpage&".html'>最后一页</a>")
txt.close
set fso = nothing '关掉fso
rs.movenext
next
set fso = server.CreateObject("Scripting.FileSystemObject") '创建fso
set myfile = fso.CreateTextFile(htmldir&"product_"&date()&"_"&j&".html",true) '这就是生成.html文件的关键语句了,意思是如果没有文件则会自动创建
myfile.writeline content '把从模版中读出来的替换过的内容写到建设好的这个文件中
'Response.write "<input type=text value='第" & j & "个文件生成成功' szie=50><br><br>" '这就生成成功了
Response.write "<script>getfun('正在批量生成第"&j&"个html文件')</script>"
myfile.close
set fso = nothing
product="" '这里是要清空prodcut变量中上一页保存的内容 这句话很重要,不然读取数据库中的内容会越累越多
next
Response.write "<script>getfun('本次生成 "&j-1&" 个html文件完成!','ok')</script>"
%>

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值