前段时间有个asp页面执行起来很慢,访问人数又颇多,而且又不经常修改,又懒得直接做成静态的,每次都要从服务器下载来改,只好想办法把asp页面转化成htm静态页面了。。。
以前就曾经看到这样的文章,不过没太在意,真正想用的时候很难找到一个合适的,于是在网上搜索了半天终于找到比较合适的代码再加上自己的修改,如下:
<%
function getpage(url)
获得文件内容
dim retrieval
set retrieval = createobject(“microsoft.xmlhttp”)
with retrieval
.open “get”, url, false , “”, “”
.send
getpage = bytestobstr(.responsebody)
end with
set retrieval = nothing
end function
function bytestobstr(body)
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 = “gb2312”
bytestobstr = objstream.readtext
objstream.close
set objstream = nothing
end function
on error resume next
url=”http://www.sina.com.cn”要读取的页面地址
response.write “开始更新首页…”
wstr = getpage(url)
response.write(wstr)
set fs=server.createobject(“scripting.filesystemobject”)
if not myfile.folderexists(server.mappath(“/html/”)) then
myfile.createfolder(server.mappath(“/html/”))
end if
要存放的页面地址
dizhi=server.mappath(“index.htm”)
if (fs.fileexists(dizhi)) then
fs.deletefile(dizhi)
end if
set crfi=fs.createtextfile(dizhi)
crfi.writeline(wstr)
set crfi=nothing
set fs=nothing
response.write “…<font color=red>更新完成!</font>”
%>
代码算是最简单的,直接保存成一个asp文件即可,只要把url(要转化的asp地址)和dizhi(要保存的html地址)设置好就可以了,一般这两个文件在同一个目录,才能保证图片或者css、js起作用。
希望对那些正在寻找asp->htm的朋友有用。