前边介绍了ASP生成静态页面的简单方法,其实还有另外一个思路,就是首先构造一个页面——这里称之为模板页,比如命名为xx.htm,然后利用介绍的方法利用Repalce函数将数据库中的内容替换掉模板中的某些代码块,生成即可。
但是,这样生成的页面面临一个问题,就是编码方式的问题不能解决。因为按照这种方法生成的页面为默认的ANSI格式。那么,在需要对生成文件(页面)的编码方式进行有效控制的时候(比如要生成UTF-8),就必须考虑生成页面的编码方式了。
经过查证,若想实现该功能Scripting.FileSystemObject对象就不能使用了,只能采用其他方式。
下面给出一种方案。
<%
‘===========函数开始===========
Public Function CreatedTextFiles(FileName,ByVal body)
On Error Resume Next
If InStr(FileName, ":") = 0 Then FileName = Server.MapPath(FileName)
Dim oStream
Set oStream = CreateObject("ADODB.Stream")
oStream.Type = 2 ‘设置为可读可写
oStream.Mode = 3 ‘设置内容为文本
oStream.Charset = "UTF-8"’此处可控制编码方式
oStream.Open
oStream.Position = oStream.Size
oStream.WriteText body
oStream.SaveToFile FileName, 2
oStream.Close
Set oStream = Nothing
If Err.Number <> 0 Then Err.Clear
End Function
‘===========函数结束===========
FilePath="xx.htm"’设置生成文件名称和路径
content="…"’此处提取据库中的数据并构造字符串,请自行编写
CreatedTextFiles filePath,content’调用函数,生成文件
%>