<%
'######## Class Template ##########
'BY RAINIC
'Author: James Chan
'Date: feb 13 2006
'说明:asp 的 Template 技术(我在php的Template技术中找到灵感)
' 使用这种技术,可以使程序与界面设计分离
' 还可以生成网页文件(静态html、动态都可以)
'##################################
'使用方法
'例如:test.asp的代码如下
' Set html=New Template
' call html.readfile("test.html")
' call html.fill_var("title","ASP Template") '替换模板文件中的“变量”(“{}”中的为变量)
' call html.fill_var("content","这是 asp 的 Template 技术。<br>")
' call html.print() '显示模板代码
' 'call html.Createfile("/",".html") '创建文件,生成的文件夹和文件将放在"/"中,文件扩展名为".html"
'
' 以下是模板test.html的代码
' <body>
' <h3>{title}</h3>
' <hr>
' {content}
' </body>
'
' 运行test.asp看结果怎样
Class Template
Private temp_content
Private fso
Private Sub Class_Initialize
temp_content=""
Set fso=Server.CreateObject("Scripting.FileSystemObject")
End Sub
'生成文件,这里temp_path为相对目录,生成的文件夹和文件将放在temp_path中,filetype为文件的扩展名
Public Sub Createfile(temp_path,filetype)
folder_Rpath = CreateFolder(temp_path)
file_Rpath = folder_Rpath & "/" & CreateName(filetype)
Set myfile=fso.CreateTextFile(file_Rpath)
myfile.Write(temp_content)
myfile.Close
set myfile=nothing
End Sub
Private Function CreateFolder(temp_path) '以当天日期生成文件夹! 并返回文件夹的绝对路径
FolderName = FormatDateTime(date(),vbShortDate)
folder_Rpath = server.MapPath(temp_path&FolderName)
if not fso.FolderExists(folder_Rpath) then
fso.CreateFolder(folder_Rpath)
end if
CreateFolder = folder_Rpath
End Function
Private Function CreateName(filetype) '生成文件名
CreateName = CStr(DateDiff("s",date(),now())) & filetype
End Function
Public Sub fill_var(filled_var,fill_content)
temp_content = replace(temp_content,"{"&filled_var&"}",fill_content)
End Sub
Public Sub print()
response.Write(temp_content)
End Sub
Public Sub readfile(Template_path) '从模板文件读出html代码
Set MyTextFile=fso.OpenTextFile(Server.MapPath(Template_path))
temp_content=MyTextFile.ReadAll
MyTextFile.Close
set MyTextFile=nothing
End Sub
End Class
%>
[此贴子已经被作者于2006-2-13 14:36:33编辑过]