当前位置: 首页 > 图文教程 > 网络编程 > ASP > ASP批量生成静态页

ASP
ASP中数据库调用中常见错误的现象和解决方法
ASP取出HTML里面的图片地址的函数
关于分页查询和性能问题
利用Asp生成整站静态
用ASP+XMLHTTP编写一个天气预报程序
轻松检测浏览器是否接受Cookies信息
净化网络环境:ASP程序实现过滤脏话
入门:防范SQL注入攻击的新办法
如何对ASP.NET进行性能优化
ASP无法更新ACCESS数据库解决方法
ASP:利用ASP把图片上传到数据库
ASP:用ASP编程实现网络内容快速查找
ASP:用ASP打造一个小型的网页BBS系统
ASP:用Asp编程实现QQ的在线情况查询
通过表单创建word的一个例子
在ASP中轻松实现记录集分页显示
ASP中实现小偷程序的原理和简单示例
ASP:6行代码实现无组件上传
实用篇:用asp实现QQ在线查询
如何轻松打造ASP计数器

ASP批量生成静态页


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-08-14   浏览: 37 ::
收藏到网摘: n/a

由于本人的空间收到限制,不能一次批量生成所有的静态页,所以自己写了一个小程序和大家分享,程序相当简单,高手莫要见笑!此代码就是很浪费时间.代码如下

<!--#include file="conn.asp"-->
<HTML><HEAD><TITLE>生成页面</TITLE>
<META http-equiv=Content-Type content="text/html; charset=gb2312">
<LINK href="style.css" type=text/css rel=stylesheet>
<META content="MSHTML 6.00.2900.3020" name=GENERATOR>
</HEAD>
<BODY bottomMargin=0 leftMargin=0 topMargin=0 rightMargin=0>
<BR style="OVERFLOW: hidden; LINE-HEIGHT: 3px">
<%
dim id
id=cint(request.querystring("id"))
if id="" then
id="1"
else
id=cint(request.querystring("id"))
end if

Dim totalnumber
sql="select id from table order by id DESC"
set rs=server.createobject("adodb.recordset")
rs.open sql,conn,1,1
rs.Movefirst
if not rs.eof then
TotalNumber=rs.recordcount
end if
获取总数可以用一句代码代替,这个相信朋友自己可以解决.
rs.close
set rs=nothing

Response.Write "<br><br>" & vbNewLine
Response.Write "<table width='400' border='0' align='center' cellpadding='0' cellspacing='0'>" & vbNewLine
Response.Write "  <tr>" & vbNewLine
Response.Write "    <td height='50'>总共 <font color='blue'><b>" & totalnumber & "</b></font> 个页面,正在生成第 <font color='red'><b>" & ID & "</b></font>  个页面…… </td>" & vbNewLine
Response.Write "  </tr>" & vbNewLine
Response.Write "</table>" & vbNewLine
Response.Flush

If ID > totalnumber Then
 Response.Write "恭喜您操作成功!"
 Response.Flush
End If

creat(ID)
id=id+1
Response.Write "<meta http-equiv=""refresh"" content=""1;url=?ID="&id&""">"
%>
</BODY>    
</HTML>

<%
Function creat(id)
 sql="SELECT * from table where id="&ID
 set rs=conn.execute(sql)
 dim name
 name=rs("name")
 conn.execute(sql)
 rs.close
 set rs=nothing
 dim fso
 dim znwl
 dim art
 dim fw
 set fso=createobject("scripting.filesystemobject")
 set znwl=fso.opentextfile(server.mappath("模板页"))
 art=znwl.readall
 znwl.close

 art=replace(art,"{$name$}",name)
 set fw=fso.createtextfile(server.mappath("生成页存放位置及页面名称"),true)
 fw.writeline art
 fw.close
 set fso=nothing
End Function
%>


另外还有一种方法比上面的方法快,但是占用CPU比较多,我的空间用下面的方法老出问题

<!--#include file="conn.asp"-->
<HTML><HEAD><TITLE>生成页面</TITLE>
<META http-equiv=Content-Type content="text/html; charset=gb2312">
<LINK href="style.css" type=text/css rel=stylesheet>
<META content="MSHTML 6.00.2900.3020" name=GENERATOR>
</HEAD>
<BODY bottomMargin=0 leftMargin=0 topMargin=0 rightMargin=0>
<BR style="OVERFLOW: hidden; LINE-HEIGHT: 3px">
<table border="1" width="100%" id="table1">
 <tr>
  <td>
<%
dim allid,ppp,id,totalnum
sql="select * from table order by id DESC"
set rs=server.createobject("adodb.recordset")
rs.open sql,conn,1,1
if not rs.eof then
 do while not rs.eof        
   if allid="" then allid= rs("id") else allid= allid & ";" & rs("id")      
   rs.movenext      
 loop
else
   If Rs.bof And Rs.EOF Then
   Response.Write "还没有找到任何文章!"
   End if
end if
rs.close
set rs=nothing

allid=";"+allid
ppp=split(allid,";")
totalnum=ubound(ppp)
for id=1 to totalnum
Session("id")=Session("id")+1
creat(id)
response.write "正在生成znwl_"&id&".htm...<br>"
next
%>
 </td>
 </tr>
</table>
</BODY>    
</HTML>

<%
Function creat(id)
 sql="SELECT * from table where id="&ID
 set rs=conn.execute(sql)
 dim name
 name=rs("name")
 conn.execute(sql)
 rs.close
 set rs=nothing
 dim fso
 dim znwl
 dim art
 dim fw
 set fso=createobject("scripting.filesystemobject")
 set znwl=fso.opentextfile(server.mappath("模板页"))
 art=znwl.readall
 znwl.close

%>

 art=replace(art,"{$name$}",name)
 set fw=fso.createtextfile(server.mappath("生成页存放位置及页面名称"),true)
 fw.writeline art
 fw.close
 set fso=nothing
End Function


这种方法快,但是你的空间要不受限制!--智能网络

上面的方法仅供参考,并不是本人修改的最后版本,但是绝对好用.