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

ASP
在ASP中使用SQL语句之10:视图
在ASP中使用SQL语句之11:记录统计
VBS、ASP代码语法加亮显示的类(2)
asp作品保护方案
使用NextRecordset通过一个Connection输出多个select查询
超长字符的智能分页-支持HTML
远程获取内容,并将内容存在本地电脑上,包括任何文件
把文件存进access数据库然后取出来供人下载的代码
一个分页存储过程
在asp文件中访问flash详细信息
关于生成目录树结构的类
用自定义函数获取汉字的首字母
asp在SQL SER2k中新建帐号和给帐号权限的实现
不用 EOF 以加快记录循环
js的单元格颜色间隔
根据选择的Checkbox动态在表格中列出选择的值
URL欺骗
汉字转化为拼音
一个不需要第三方组件,可实现华简单图形的类
组合查询之核心:拼接字符串

ASP批量生成静态页


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-08-14   浏览: 190 ::
收藏到网摘: 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


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

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