您当前的位置是:首页-ASP教程

asp定时生成静态HTML的代码

【发表于】:2010/9/24 0:47:00  已被访问:106次
<% ’判断是否要生成新的HTML if Application("cache_asptohtml_date")="" then Application.Lock Application("cache_asptohtml_date")=now() Application.Unlock Call aspTohtml Response.Redirect("index.html") end if if DateDiff("s", Application("cache_asptohtml_date"),Now)> 100 then ’比较上次更新时间与当前时间相差多少秒 Application.Lock Application("cache_asptohtml_date")=now() Application.UnLock Call aspTohtml Response.Redirect("index.html") Else Response.Redirect("index.html") End if ’获取当前目录! function getpath if Request.ServerVariables("SERVER_PORT")<>"80" then UserUrl = "http://"&Request.ServerVariables("SERVER_NAME")& ":" & Request.ServerVariables("SERVER_PORT")& Request.ServerVariables("URL") else UserUrl = "http://"&Request.ServerVariables("SERVER_NAME")& Request.ServerVariables("URL") end if getpath=left(UserUrl,InstrRev(UserUrl,"/")) end function sub aspTohtml ’---------------------------------------------------------- ’使用XMLHTTP生成静态首页的代码 ’Curl 为你的首页地址,确保你的空间支持FSO ’----------------------------------------------------------- dim read,Curl,content Curl=getpath&"home.asp" read=getHTTPPage(Curl) if read<>"" then content=read Set Fso = Server.CreateObject("Scripting.FileSystemObject") Filen=Server.MapPath("index.html") Set Site_Config=FSO.CreateTextFile(Filen,true, False) Site_Config.Write content Site_Config.Close Set Fso = Nothing end if End sub Function getHTTPPage(url) 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 err.Clear 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 %>

如何使用asp定时生成静态HTML呢,请看下面代码

<%
'判断是否要生成新的HTML
if Application("cache_asptohtml_date")="" then
Application.Lock
Application("cache_asptohtml_date")=now()
Application.Unlock
Call aspTohtml
Response.Redirect("index.html")
end if
if DateDiff("s", Application("cache_asptohtml_date"),Now)> 100 then '比较上次更新时间与当前时间相差多少秒
Application.Lock
Application("cache_asptohtml_date")=now()
Application.UnLock
Call aspTohtml
Response.Redirect("index.html")
Else
Response.Redirect("index.html")
End if

'获取当前目录!
function getpath
if Request.ServerVariables("SERVER_PORT")<>"80" then
UserUrl = "http://"&Request.ServerVariables("SERVER_NAME")& ":" & Request.ServerVariables("SERVER_PORT")& Request.ServerVariables("URL")
else
UserUrl = "http://"&Request.ServerVariables("SERVER_NAME")& Request.ServerVariables("URL")
end if
getpath=left(UserUrl,InstrRev(UserUrl,"/"))
end function

sub aspTohtml
'----------------------------------------------------------
'使用XMLHTTP生成静态首页的代码
'Curl 为你的首页地址,确保你的空间支持FSO
'-----------------------------------------------------------
dim read,Curl,content
Curl=getpath&"home.asp"
read=getHTTPPage(Curl)
if read<>"" then
content=read
Set Fso = Server.CreateObject("Scripting.FileSystemObject")
Filen=Server.MapPath("index.html")
Set Site_Config=FSO.CreateTextFile(Filen,true, False)
Site_Config.Write content
Site_Config.Close
Set Fso = Nothing
end if
End sub
Function getHTTPPage(url)
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 err.Clear
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
%>

ASP定时生成静态页(HTML)2
<%
set fs=server.createobject("scripting.filesystemobject")
file=server.mappath("time.txt")
set txt=fs.opentextfile(file,1,true)
if not txt.atendofstream then
times=txt.ReadLine
Else
response.write "<br /><!--有没有发现time.txt 开始生成!-->"
HtmlPage = "time.txt" '//生成的HTML文件名
Template = NOW()
Set FSO = Server.CreateObject ("Scripting.FileSystemObject")
Set FileOut = FSO.CreateTextFile(Server.MapPath (HtmlPage))
FileOut.WriteLine Template
FileOut.Close
Set FSO = Nothing
end If


If datediff("s",times,NOW()) > 3600 Then '//上次更新到现在的时间 大于 3600秒 则 更新
response.write "<br /><!--时间过了开始更新-->"

code = "这里是需要生成的html代码" '//如何得到代码的方式有很多

'//用FSO生成HTML页面
HtmlPage = "index.html" '//生成的HTML文件名
Template = code
Set FSO = Server.CreateObject ("Scripting.FileSystemObject")
Set FileOut = FSO.CreateTextFile(Server.MapPath (HtmlPage))
FileOut.WriteLine Template
FileOut.Close
Set FSO = Nothing

'//用FSO生成time.txt文件
HtmlPage = "time.txt" '//生成的HTML文件名
Template = NOW()
Set FSO = Server.CreateObject ("Scripting.FileSystemObject")
Set FileOut = FSO.CreateTextFile(Server.MapPath (HtmlPage))
FileOut.WriteLine Template
FileOut.Close
Set FSO = Nothing

Else

response.write "<br /><!-- 已经过去"&datediff("s",times,NOW())&"秒!-->"

End If
%>

<% set fs=server.createobject("scripting.filesystemobject") file=server.mappath("time.txt") set txt=fs.opentextfile(file,1,true) if not txt.atendofstream then times=txt.ReadLine Else response.write "
" HtmlPage = "time.txt" ’//生成的HTML文件名 Template = NOW() Set FSO = Server.CreateObject ("Scripting.FileSystemObject") Set FileOut = FSO.CreateTextFile(Server.MapPath (HtmlPage)) FileOut.WriteLine Template FileOut.Close Set FSO = Nothing end If If datediff("s",times,NOW()) > 3600 Then ’//上次更新到现在的时间 大于 3600秒 则 更新 response.write "
" code = "这里是需要生成的html代码" ’//如何得到代码的方式有很多 ’//用FSO生成HTML页面 HtmlPage = "index.html" ’//生成的HTML文件名 Template = code Set FSO = Server.CreateObject ("Scripting.FileSystemObject") Set FileOut = FSO.CreateTextFile(Server.MapPath (HtmlPage)) FileOut.WriteLine Template FileOut.Close Set FSO = Nothing ’//用FSO生成time.txt文件 HtmlPage = "time.txt" ’//生成的HTML文件名 Template = NOW() Set FSO = Server.CreateObject ("Scripting.FileSystemObject") Set FileOut = FSO.CreateTextFile(Server.MapPath (HtmlPage)) FileOut.WriteLine Template FileOut.Close Set FSO = Nothing Else response.write "
" End If %>
 
上下篇: 有效防止ASP木马上传运行—小知识 ASP自动采集实现代码发布

最新推荐信息