日期:2011-10-24  浏览次数:21263 次

 

前段时间有个asp页面执行起来很慢,访问人数又颇多,而且又不经常修改,又懒得直接做成静态的,每次都要从服务器下载来改,只好想办法把asp页面转化成htm静态页面了。。。

以前就曾经看到这样的文章,不过没太在意,真正想用的时候很难找到一个合适的,于是在网上搜索了半天终于找到比较合适的代码再加上自己的修改,如下:

<%
FunctionGetPage(url)
 '获得文件内容
 dimRetrieval
 SetRetrieval=CreateObject("Microsoft.XMLHTTP")
 WithRetrieval
 .Open"Get",url,False',"",""
 .Send
 GetPage=BytesToBstr(.ResponseBody)
 EndWith
 SetRetrieval=Nothing
EndFunction

FunctionBytesToBstr(body)
 dimobjstream
 setobjstream=Server.CreateObject("adodb.stream")
 objstream.Type=1
 objstream.Mode=3
 objstream.Open
 objstream.Writebody
 objstream.Position=0
 objstream.Type=2
 objstream.Charset="GB2312"
 BytesToBstr=objstream.ReadText
 objstream.Close
 setobjstream=nothing
EndFunction

onerrorresumenext
Url="要读取的页面地址
response.write"开始更新首页..."
wstr=GetPage(Url)

'response.write(wstr)
Setfs=Server.CreateObject("Scripting.FileSystemObject")

'ifnotMyFile.FolderExists(server.MapPath("/html/"))then
'MyFile.CreateFolder(server.MapPath("/html/"))'
'endif

'要存放的页面地址
dizhi=server.MapPath("index.htm")
If(fs.FileExists(dizhi))Then
fs.DeleteFile(dizhi)
EndIf

SetCrFi=fs.CreateTextFile(dizhi)
Crfi.Writeline(wstr)
setCrFi=nothing
setfs=nothing
response.write"...<fontcolor=red>更新完成!</font>"
%>


代码算是最简单的,直接保存成一个asp文件即可,只要把URL(要转化的asp地址)和dizhi(要保存的html地址)设置好就可以了,一般这两个文件在同一个目录,才能保证图片或者CSS、js起作用。

希望对那些正在寻找asp->htm的朋友有用。