< % ' ============================================== ' FileName: asptohtml.asp ' Author: Ustonet [AT] Gmail.com ' Function: 动态页面生成HTML静态文件,文件自动命名 ' Update: 2006.12.14 ' ============================================== ' 转换日期时间函数 function chan_time(shijian) s_year = year (shijian) if len (s_year) = 2 then s_year = " 20 " & s_year s_month = month (shijian) if s_month < 10 then s_month = " 0 " & s_month s_day = day (shijian) if s_day < 10 then s_day = " 0 " & s_day s_hour = hour (shijian) if s_hour < 10 then s_hour = " 0 " & s_hour s_minute = minute (shijian) if s_minute < 10 then s_minute = " 0 " & s_minute chan_time = s_year & s_month & s_day & s_hour & s_minute end function ' 转换日期时间函数 function chan_data(shijian) s_year = year (shijian) if len (s_year) = 2 then s_year = " 20 " & s_year s_month = month (shijian) if s_month < 10 then s_month = " 0 " & s_month s_day = day (shijian) if s_day < 10 then s_day = " 0 " & s_day chan_data = s_year & s_month & s_day end function ' 转换日期时间函数 function chan_file(shijian) s_month = month (shijian) if s_month < 10 then s_month = " 0 " & s_month s_day = day (shijian) if s_day < 10 then s_day = " 0 " & s_day s_hour = hour (shijian) if s_hour < 10 then s_hour = " 0 " & s_hour s_minute = minute (shijian) if s_minute < 10 then s_minute = " 0 " & s_minute s_ss = second (shijian) if s_ss < 10 then s_ss = " 0 " & s_ss chan_file = s_month & s_day & s_hour & s_minute & s_ss end function function get_pass(pass) pass = cstr (pass) pass = replace (pass, " " , "" ) pass = replace (pass, " " , "" ) pass = replace (pass, " - " , "" ) pass = replace (pass, " " , "" ) pass = replace (pass, " : " , "" ) pass = replace (pass, " . " , "" ) pass = replace (pass, " + " , "" ) pass = replace (pass, " _ " , "" ) pass = replace (pass, " < " , "" ) pass = replace (pass, " > " , "" ) pass = replace (pass, " ! " , "" ) pass = replace (pass, " @ " , "" ) pass = replace (pass, " # " , "" ) pass = replace (pass, " $ " , "" ) pass = replace (pass, " % " , "" ) pass = replace (pass, " ^ " , "" ) pass = replace (pass, " & " , "" ) pass = replace (pass, " * " , "" ) pass = replace (pass, " ( " , "" ) pass = replace (pass, " ) " , "" ) pass = replace (pass, " = " , "" ) pass = replace (pass, " " , "" ) pass = replace (pass, " / " , "" ) pass = replace (pass, " | " , "" ) get_pass = pass end function Public function htmlcode(content) if content <> "" then content = replace (content, " & " , " & " ) content = replace (content, " < " , " < " ) content = replace (content, " > " , " > " ) content = replace (content, " " " , " ' " ) content = replace (content, " " , " " ) content = replace (content, " <P> " , " <br> " ) content = replace (content, " </P> " , "" ) end if htmlcode = content End Function ' Sub asptohtml(News_Title,News_Date,News_Hits,News_From,News_Content) Public Function asptohtml(News_Title,News_Date,News_Hits,News_From,News_Content) ' // 创建文件系统对象 Set fso = Server.CreateObject( " Scripting.FileSystemObject " ) ' // 打开网页模板文件,读取模板内容 Set htmlwrite = fso.OpenTextFile(Server.MapPath( " temp.html " )) msg = htmlwrite.ReadAll htmlwrite.close msg = Replace (msg, " $News_Title$ " ,News_Title) msg = Replace (msg, " $News_Date$ " ,News_Date) msg = Replace (msg, " $News_Hits$ " ,News_Hits) msg = Replace (msg, " $News_From$ " ,News_From) msg = Replace (msg, " $News_Content$ " ,htmlcode(News_Content)) Set fs = Server.CreateObject( " Scripting.FileSystemObject " ) all_tree2 = server.mappath( " int " ) & " " & chan_data( now ) if (fs.FolderExists(all_tree2)) then ' 判断今天的文件夹是否存在 else fs.CreateFolder(all_tree2) end if pass = chan_file( now ) randomize ' 使用系统计时器来初始化乱数产生器 pass = rnd (pass) pass = get_pass(pass) pass = left (pass, 10 ) file1 = pass files = file1 & " .txt " filez = all_tree2 & " " & files set ts = fs.createtextfile(filez, true ) ' 写文件 for z = 1 to len (msg) write_now = mid (msg,z, 1 ) ts.write(write_now) next ' ts.writeline(all_msg) ts.close set ts = nothing ' 文件生成 if err.number <> 0 or err then ' response.Write("发生错误。") else ' response.Write("HTML文件生成完成。") end if Set MyFile = fs.GetFile(filez) all_tree2 = server.mappath( " int " ) & " " & chan_data( now ) if (fs.FolderExists(all_tree2)) then else fs.CreateFolder(all_tree2) end if MyFile.name = left (MyFile.name, len (MyFile.name) - 4 ) & " .html " ' //返回文件名 asptohtml = " int/ " & chan_data( now ) & " / " & MyFile.name set MyFile = nothing set fs = nothing set fdir = nothing ' // 释放文件系统对象 set htmlwrite = Nothing set fso = Nothing End Function % >