<!--#include virtual="/Admin/include/ConnOpen.Inc"-->
<%
'上边这个是导入的数据库连接文件
timer1=timer
set xmlhttp=server.CreateObject("Microsoft.XMLHTTP")
set ado=Server.CreateObject("ADODB.Stream")
Set FSO = CreateObject("Scripting.FileSystemObject")
set rs=server.CreateObject("adodb.recordset")
servername=Request.ServerVariables("HTTP_HOST") '这里是需要生成页面站点的名称
'response.write servername
typex=trim(request("type"))
%>
<html>
<head>
<title>生成静态页面 by greatsolon</title>
<meta http-equiv="Content-Type" content="text/html;
charset=gb2312" />
<style type="text/css">
<!--
body {
margin-left: 0px;
margin-top: 0px;
margin-right: 0px;
margin-bottom: 0px;
}
body,td,th {
font-size: 12px;
}
.scroll_bar {
border: 1px solid #0080BD;
background-color: #FFFEF2;
}
.input1 {
border-bottom-width: 1px;
border-top-style: none;
border-right-style: none;
border-bottom-style: solid;
border-left-style: none;
border-bottom-color: #999999;
line-height: 14px;
height: 14px;
}
#line_bar {
position: absolute;
height: 12px;
width: 100%;
font-weight: bold;
}
.img_bar {
filter:progid:DXImageTransform.Microsoft.Gradient(startC
olorStr='#CEDFF6', endColorStr='#4B92D9',
gradientType='1')
background-color: #0198D1;
}
a:link {
color: #666666;
text-decoration: none;
}
a:visited {
text-decoration: none;
color: #999999;
}
a:hover {
text-decoration: underline;
color: #999999;
}
a:active {
text-decoration: none;
color: #CCCCCC;
}
-->
</style>
<%
if typex="date" then
%>
<script language="javascript" src="calendar.js"></script>
<%
end if
%>
</head>
<body>
<%
idx=trim(saferequest("id",1))
num=trim(request("num"))
startx=trim(saferequest("startx",0))
endx=trim(saferequest("endx",0))
list=trim(saferequest("list",1))
iner=trim(saferequest("iner",0))
createnum=trim(saferequest("createnum",1))
if createnum="" then createnum=0
if not isnumeric(num) then num=""
if num="" and createnum=0 and request("action")="create" Then
sql="select tbnc_CMSarticle.article_id,tbnc_CMSarticle.isnew,tbnc_CMSarticle.Article_inputer,tbnc_CMScolumn.column_layer,tbnc_CMScolumn.column_name, tbnc_CMScolumn.column_id, tbnc_CMSarticle.Column_id AS Expr1, tbnc_CMSarticle.Article_datetime FROM tbnc_CMSarticle INNER JOIN tbnc_CMScolumn ON tbnc_CMSarticle.Column_id = tbnc_CMScolumn.column_id"
sql=sql & " where 1=1"
if idx<>"" then
sql=sql & " and tbnc_CMSarticle.article_id>=" & idx
end if
if iner<>"" then
sql=sql & " and tbnc_CMSarticle.Article_inputer='" & iner & "'"
end if
sql=sql & " ORDER BY tbnc_CMSarticle.Article_id"
rs.open sql,conn,1,1
if not rs.eof and not rs.bof then
num=clng(rs.recordcount)
else
num=1
end if
rs.close()
end if
if trim(request("action"))="create"then
if request("ci")="1" then
if num<>createnum then
if typex<>"date" then
sql="select top 1 tbnc_CMSarticle.article_title,tbnc_CMSarticle.isnew,tbnc_CMSarticle.Article_inputer,tbnc_CMScolumn.column_layer, tbnc_CMSarticle.Article_id,tbnc_CMScolumn.column_name, tbnc_CMScolumn.column_id, tbnc_CMSarticle.Column_id AS Expr1, tbnc_CMSarticle.Article_datetime FROM tbnc_CMSarticle INNER JOIN tbnc_CMScolumn ON tbnc_CMSarticle.Column_id = tbnc_CMScolumn.column_id"
sql=sql & " where 1=1"
if idx<>"" then
if createnum=0 then
sql=sql & " and tbnc_CMSarticle.article_id>=" & idx
else
sql=sql & " and tbnc_CMSarticle.article_id>" & idx
end if
end if
if iner<>"" then
sql=sql & " and tbnc_CMSarticle.Article_inputer='" & iner & "'"
end if
sql=sql & " ORDER BY tbnc_CMSarticle.Article_id"
end if
'response.Write sql
'response.End()
rs.open sql,conn,1,1
if not rs.eof and not rs.bof then
title=trim(rs("Article_title"))
layer=trim(rs("column_layer"))
id=trim(rs("Article_id"))
column_id=trim(rs("column_id"))
namex=trim(rs("column_name"))
da=year(trim(rs("article_datetime"))) & "-" & month(trim(rs("article_datetime")))
if trim(rs("isnew"))=1 then
call checkpath(server.MapPath("/newpage"))
call checkpath(server.MapPath("/newpage/" & da))
call checkpath(server.MapPath("/newpage/" & da & "/" & column_id))
path=da & "/" & column_id
else
path=""
end if
pathx="/newpage/" & path & "/" & id & ".htm"
strUrl = "http://" & servername & "/list.asp?id=" & id & "&column_id=" & column_id & "&column_layer=" & layer & "&column_name=" & namex
'response.Write strUrl
'response.End()
call creatPage(id,strUrl,path)
createnum=createnum+1
lastid=id
else
createnum=createnum+1
lastid=idx
end if
set xmlhttp=nothing
set ado=nothing
Conn.Close
Set Conn=Nothing
end if
else
if typex="date" then
sql="SELECT"
if num<>"" then
sql=sql & " top " & num
end if
sql=sql & " tbnc_CMSarticle.isnew,tbnc_CMSarticle.Article_inputer,tbnc_CMScolumn.column_layer, tbnc_CMSarticle.Article_id,tbnc_CMScolumn.column_name, tbnc_CMScolumn.column_id, tbnc_CMSarticle.Column_id AS Expr1, tbnc_CMSarticle.Article_datetime FROM tbnc_CMSarticle INNER JOIN tbnc_CMScolumn ON tbnc_CMSarticle.Column_id = tbnc_CMScolumn.column_id"
if startx<>"" or endx<>"" or list<>"" or iner<>"" then
sql=sql & " where"
end if
if startx<>"" then
sql=sql & " tbnc_CMSarticle.Article_datetime>='" & startx & "'"
end if
if startx<>"" and endx<>"" then
sql=sql & " and tbnc_CMSarticle.Article_datetime<='" & endx & "'"
elseif startx="" and endx<>"" then
sql=sql & " tbnc_CMSarticle.Article_datetime<='" & endx & "'"
end if
if iner<>"" and (startx<>"" or endx<>"") then
sql=sql & " and tbnc_CMSarticle.Article_inputer='" & iner & "'"
elseif iner<>"" and startx="" and endx="" then
sql=sql & " tbnc_CMSarticle.Article_inputer='" & iner & "'"
end if
if list<>"0" and (startx<>"" or endx<>"" or iner<>"") then
sql=sql & " and tbnc_CMScolumn.column_id='" & list & "'"
elseif list<>"0" and startx="" and endx="" and iner="" then
sql=sql & " tbnc_CMScolumn.column_id='" & list & "'"
end if
sql=sql & " ORDER BY tbnc_CMSarticle.Article_datetime"
else
sql="SELECT"
if num<>"" then
sql=sql & " top " & num
end if
sql=sql & " tbnc_CMSarticle.Article_datetime,tbnc_CMSarticle.isnew,tbnc_CMSarticle.Article_inputer,tbnc_CMScolumn.column_layer, tbnc_CMSarticle.Article_id, tbnc_CMScolumn.column_name, tbnc_CMScolumn.column_id, tbnc_CMSarticle.Column_id AS Expr1 FROM tbnc_CMSarticle INNER JOIN tbnc_CMScolumn ON tbnc_CMSarticle.Column_id = tbnc_CMScolumn.column_id"
if idx<>"" or iner<>"" then
sql=sql & " where"
end if
if idx<>"" then
sql=sql & " tbnc_CMSarticle.Article_id>='" & idx & "'"
end if
if idx<>"" and iner<>"" then
sql=sql & " and tbnc_CMSarticle.Article_inputer='" & iner & "'"
elseif idx="" and iner<>"" then
sql=sql & " tbnc_CMSarticle.Article_inputer='" & iner & "'"
end if
sql=sql & " ORDER BY tbnc_CMSarticle.Article_id"
end if
'response.Write sql
'response.End()
rs.open sql,conn,1,1
do until rs.eof
layer=trim(rs("column_layer"))
id=trim(rs("Article_id"))
column_id=trim(rs("column_id"))
namex=trim(rs("column_name"))
da=year(trim(rs("article_datetime"))) & "-" & month(trim(rs("article_datetime")))
if trim(rs("isnew"))=1 then
call checkpath(server.MapPath("/newpage"))
call checkpath(server.MapPath("/newpage/" & da))
call checkpath(server.MapPath("/newpage/" & da & "/" & column_id))
path=da & "/" & column_id
else
path=""
end if
strUrl = "http://" & servername & "/list.asp?id=" & id & "&column_id=" & column_id & "&column_layer=" & layer & "&column_name=" & namex
'response.Write strUrl
'response.End()
call creatPage(id,strUrl,path)
rs.movenext
createnum=createnum+1
lastid=id
loop
if typex="date" then
response.Write "<script language='javascript'>alert('生成成功!\n共生成了" & createnum & "个页面!');</script>"
else
response.Write "<script language='javascript'>alert('生成成功!\n共生成了" & createnum & "个页面!');document.getElementById('id').value='" &
lastid+1 & "';</script>"
end if
set xmlhttp=nothing
set ado=nothing
Conn.Close
Set Conn=Nothing
end if
end if
select case typex
case "date"
call orderDate()
case ""
call orderId()
case else
call orderId()
end select
sub orderId()
%>
<form action="?action=create" method="post" name="form1">
<table width="100%" border="0" cellpadding="0" cellspacing="0">
<%
if request("ci")<>"1" then
%>
<tr>
<td height="44" align="center"><a href="?">按id生成</a> <a href="?type=date">按
日期生成</a></td>
</tr>
<%
end if
%>
<tr>
<td align="center">
<%
if request("ci")<>"1" then
%>
<table width="60%" border="0" cellspacing="0" cellpadding="0">
<tr>
<td align="center">导入人
<input name="iner" type="text" class="input1" id="iner" value="<%=request("iner")%>" size="8" />从id
<input name="id" type="text" class="input1" id="id" value="<%=request("id")%>" size="8" />
开始生成
<input name="num" type="text" class="input1" id="num" value="<%=request("num")%>" size="8" />条
<input name="ci" type="checkbox" id="ci" value="1">按次序生成</td>
</tr>
</table>
<%end if%>
<br>
<%
if request("ci")="1" then
line=abs(clng(createnum)/clng(num))*100
line=formatnumber(line,2)
if line<1 then
line="0" & line
end if
'response.Write line
'response.End()
%>
<table width="500" border="0" cellpadding="3"
cellspacing="1" bgcolor="#E8E8E8">
<tr>
<td bordercolor="#FFFFFF" bgcolor="#FFFFFF">当前进度
:
<%if num<>createnum then%>
生成到第 <%=createnum%>/<%=num%> 条<br>
当 前 ID:
<input name="textfield" type="text" class="input1" value="<%=lastid%>" size="8">
<br>
文章标题:
[<font color="#4B92D9"><%=cutstr(title,60)%></font>]<br>
生成路径: <a href="<%=pathx%>" target="_blank"><%=pathx%></a>
<%else%>
生成完成![<a href="createpage.asp">返回</a>]
<%end if%>
<br>
完成时间: <%=year(now()) & "年" & month(now()) & "月" & day(now()) & "日 " & time()%> </td>
</tr>
<tr>
<td align="center" bordercolor="#FFFFFF" bgcolor="#FFFFFF"><table width="100%" border="0" align="center" cellpadding="0" cellspacing="0" class="scroll_bar">
<tr>
<td><div id="line_bar" align="center"><%=line%>%</div>
<table width="<%=line%>%" border="0" cellspacing="0" cellpadding="0">
<tr>
<td height="12" class="img_bar"></td>
</tr>
</table></td>
</tr>
</table></td>
</tr>
</table>
<%
end if
%></td>
</tr>
<tr>
<td height="39" align="center"><%if request("ci")<>"1" then%><input type="submit" name="Submit" value="生 成" /><%end if%></td>
</tr>
</table>
</form>
<%
if request("ci")="1" and num<>createnum then
response.Write "<script language='javascript'>location.replace('?action=create&ci=1&id=" & lastid & "&createnum=" & createnum & "&num=" & num & "&iner=" & iner & "');</script>"
end if
end sub
sub orderDate()
%>
<form action="?action=create&type=date" method="post" name="form1">
<table width="100%" border="0" cellpadding="0" cellspacing="0">
<tr>
<td height="44" align="center"><a href="?">按id生成</a> <a href="?type=date">按
日期生成</a></td>
</tr>
<tr>
<td align="center">从
<INPUT name="startx" class="input1" id="startx" onFocus="this.select()" onClick="fPopCalendar(startx,startx);return false" size="10" readOnly="readOnly" mouseover="this.focus()">
生成到
<input name="endx" class="input1" id="endx" onFocus="this.select()" onClick="fPopCalendar(endx,endx);return false" size="10" readonly="readOnly" mouseover="this.focus()" />
导入人
<input name="iner" type="text" class="input1" id="iner" size="8" />
按栏目
<select name="list">
<option value="0" selected>请选择</option>
<%
sql="SELECT column_id, column_name FROM tbnc_CMScolumn
order by column_id"
rs.open sql,conn,1,1
do until rs.eof
%>
<option value="<%=trim(rs("column_id"))%>"><%=trim(rs("column_id"))%>-<%=trim(rs("column_name"))%></option>
<%
rs.movenext
loop
rs.close()
%>
</select>
生成
<input name="num" type="text" class="input1" id="num"
size="8" />
条<br />
<br />
注:如果不选栏目或者导入人的话,可能会因为某天导入的数据
量过大而使服务器当掉,请小心!</td>
</tr>
<tr>
<td height="39" align="center"><input type="submit" name="Submit" value="生 成" /></td>
</tr>
</table>
</form>
<%
end sub
%>
<div align="center">
<%
timer2 = timer
thetime=cstr(int(((timer2-timer1)*10000 )+0.5)/10)
%>页面执行时间:<%=thetime%> 毫秒
</div>
</body>
</html>
<%
sub creatPage(filename,strUrl,path)
xmlhttp.open "GET",strUrl,false
xmlhttp.send()
strHtml=xmlhttp.responseBody
if path<>"" then
FilePath=Server.mappath("/newpage/" & path & "/" &
filename & ".htm")
else
FilePath=Server.mappath("/html/"
& filename & ".htm")
end if
ado.type=1
ado.open()
ado.write(strHtml)
ado.SaveToFile FilePath,2
ado.close()
end sub
sub checkPath(path)
'检查目录是否存在,否则创建它
if not fso.FolderExists(path) then
fso.createFolder(path)
end if
end sub
function CutStr(str,strlen)
dim I,l,t,c
l=len(str)
t=0
for I=1 to l
c=Abs(Asc(Mid(str,i,1)))
if c>255 then
t=t+2
else
t=t+1
end if
if t>=strlen Then
If I<>l Then
cutStr=left(str,i)&"..."
exit for
else
cutStr=str
end if
next
end function
function saferequest(paraname,paratype)
dim paravalue
paravalue=request(paraname)
if paratype=1 then
if not isnumeric(paravalue) then
response.write "variable <font color=red>" &
paraname & "</font> must be number!"
response.write "Do not hack this page!Thank you!"
response.end
end if
else
paravalue=replace(paravalue,"&","&")
paravalue=replace(paravalue,"*","")
paravalue=replace(paravalue,"<","<")
paravalue=replace(paravalue,"chr(34)",""")
paravalue=replace(paravalue,">",">")
paravalue=replace(paravalue,"#","")
paravalue=replace(paravalue, "''", "‘")
paravalue=replace(paravalue, """", "“")
end if
saferequest=paravalue
end function
%>
正文
asp自动生成静态页面代码2007-07-10 08:43:00
【评论】 【打印】 【字体:大 中 小】 本文链接:http://blog.pfan.cn/sovf/27432.html
阅读(5661) | 评论(0)
版权声明:编程爱好者网站为此博客服务提供商,如本文牵涉到版权问题,编程爱好者网站不承担相关责任,如有版权问题请直接与本文作者联系解决。谢谢!
评论