破解天下论坛's Archiver

baifengs 发表于 2010-7-21 10:01

ASP 文件操作函数 及 生成静态html最简单的实现思路

[code]先把函数帖出来!

文件 IO_Function.asp

============================================================================
<%
'====================================================================
'LoadFile(ByVal File)   加载已经有的文件,并把文件的内容生成一个字符串返回
'SaveToFile(ByVal strBody,ByVal File)   把更改的文件保存,strBody为新的字符串
'DelFile(ByVal File)     删除已有的文件
'加载已经有的文件,File为文件路径
'-------------------------------------------------------------------
Function LoadFile(ByVal File)
     Dim objStream
     On Error Resume Next
     Set objStream = Server.CreateObject("ADODB.Stream")
     If Err.Number=-2147221005 Then
         Response.Write " 非常遗憾,您的主机不支持ADODB.Stream,不能使用本程序"
         Err.Clear
         Response.End
     End If
     With objStream
         .Type = 2
         .Mode = 3
         .Open
         .LoadFromFile File
         If Err.Number<>0 Then
     Response.Write " 文件"&File&"无法被打开,请检查是否存在!"
     Err.Clear
     Response.End
         End If
         .Charset = "GB2312"
         .Position = 2
         LoadFile = .ReadText
         .Close
     End With
     Set objStream = Nothing
End Function
'-------------------------------------------------------------------
Function SaveToFile(ByVal strBody,ByVal File)   '保存打开的文件,File为保存的文件路径,strBody为保存的内容
     Dim objStream
     On Error Resume Next
     Set objStream = Server.CreateObject("ADODB.Stream")
     If Err.Number=-2147221005 Then
         Response.Write "<div align='center'>非常遗憾,您的主机不支持ADODB.Stream,不能使用本程序</div>"
         Err.Clear
         Response.End
     End If
     With objStream
         .Type = 2
         .Open
         .Charset = "GB2312"
         .Position = objStream.Size
         .WriteText = strBody
         .SaveToFile File,2
         .Close
     End With
     Set objStream = Nothing
End Function
'-------------------------------------------------------------------
Function DelFile(ByVal File)
   Dim objFilesys
     On Error Resume Next
     Set objFilesys=server.createobject("scripting.filesystemobject")
     If objFilesys.FILEExists(File) then   '如果文件存在着删除它 FILE为文件路径
       objFilesys.deleteFILE File
     End if
     If Err.Number<>0 Then
       Response.Write " 文件"&File&"无法被删除,可能文件正在被系统使用中!"
       Err.Clear
       Response.End
     End If
Set objFilesys=nothing
End Function

%>

====================================================

生成静态方法 先做一模板

如:1.HTM
新闻 :{$news$}
内容:{$content$}

PATH=server.MapPath("1.HTM") '取绝对路径
然后用函数 HTMLSTR= LoadFile(PATH)
HTMLSTR就是1.HTM里的所有内容了

接下来 我们就把模板中要替换的内容从数据库中读出

     HTMLSTR=replace(HTMLSTR,"{$news$}","数据库中的新闻")
     HTMLSTR=replace(HTMLSTR,"{$content$}","数据库中的内容")
ToPath=   ?你的保存绝对路径 和文件名 文件名你可以是你自己用随机函数生成或日期生成
然后调用 SaveToFile HTMLSTR,ToPath 来保存
你可以把文件名写到数据库 以便修改和删除 如果删除 就调用 DelFile 绝对路径
[/code]

页: [1]

Powered by Discuz! Archiver 7.0.0  © 2001-2009 Comsenz Inc.