asp 根據模板生成html靜態檔案類
'使用範例:
' dim tpl
' set tpl = new template
' tpl.settplpath = "../template/footer.tpl"
' tpl.settags = array("")
' tpl.setnotes = array("替換內容")
' tpl.setstoref = "../html/" '使用自動生成檔名時請在未尾加"/"
' tpl.exetpl
' set tpl = nothing
class template
private objfso
private strfilecode ' 讀取模板檔案的內容
private intrnd ' 生成隨機數,組合成新檔名
private tplpath ' 模板名稱
private storepath ' 生成檔案存放目錄
private storefname ' 生成檔名稱
private arrtags ' 標籤陣列
private arrnotes ' 內容
' 在使用 set 建立物件時自動執行
private sub class_initialize()
set objfso = createobject("scripting.filesystemobject")
end sub
' 模板檔案位置+名稱 只寫
public property let settplpath(byval tname)
end property
' 儲存檔案位置+名稱 只寫
public property let setstoref(byval tname)
tname = replace(tname,"//","/")
' 取檔名
dim arry
arry = split(tname,"/")
storefname = ubound(arry)
storefname = arry(storefname)
' 取目錄名
storepath = replace(tname,storefname,"")
end property
' 標籤 只寫
public property let settags(byval strstring)
arrtags = strstring
end property
' 內容 只寫
public property let setnotes(byval strstring)
arrnotes = strstring
end property
' 生成在min 與 max之間取隨機數
private sub rnd_integer(min,max)
randomize
intrnd = cint((max-min+1)*rnd()+min)
end sub
' 生成檔名:時間+隨機數
private sub makefilename
dim fname
fname = now()
fname = replace(fname,"-","")
fname = replace(fname," ","")
fname = replace(fname,":","")
fname = replace(fname,"pm","")
fname = replace(fname,"am","")
fname = replace(fname,"上午","")
fname = replace(fname,"下午","")
call rnd_integer(0,9999)
storefname = fname&intrnd&".html"
fname = null
end sub
' 讀取模板檔案內容
private sub loadtemplate
if objfso.fileexists(tplpath) then
set fileobj = objfso.getfile(tplpath)
set filestreamobj = fileobj.openastextstream(1)
if not filestreamobj.atendofstream then
strfilecode = filestreamobj.readall
else
message 1002
end if
else
message 1001
end if
set fileobj = nothing:set filestreamobj = nothing
end sub
' 更新頁面內容
private sub updatenotes
if isarray(arrnotes) and isarray(arrtags) then
if ubound(arrnotes) = ubound(arrtags) then
loadtemplate
for inti = lbound(arrnotes) to ubound(arrnotes)
strfilecode = replace(strfilecode,arrtags(inti),arrnotes(inti))
next
else
message 1004
end if
else
message 1004
end if
end sub
' 建立資料夾
private sub makefold(byval strfoladname)
on error resume next
'判斷資料夾是否存在,(about files:objfso.fileexists)
if false = objfso.folderexists(strfoladname) then
objfso.createfolder(strfoladname)
if err>0 then
err.clear
message 1003
end if
end if
end sub
' 建立檔案
private sub makefile
dim arrx,inti,strw
strw = ""
arrx = split(storepath,"/")
' 判斷目錄是否存在,決定是否建立目錄
for inti = lbound(arrx) to ubound(arrx)
makefold strw&arrx(inti)
strw = strw&arrx(inti)
next
' 未設定檔名則使用日期加隨機數作為檔名
if storefname = "" then
makefilename
end if
' 更新內容
updatenotes
' 生成檔案 object.createtextfile(filename[, overwrite[, unicode]])
set objfout = objfso.createtextfile(storepath&"/"&storefname,true)
' 輸入內容
objfout.writeline strfilecode
objfout.close
set objfso = nothing
' 提示操作成功
message 1000
end sub
' 執行
public sub exetpl
makefile
end sub
' 返回
private sub message(byval s)
select case s
case 1000
response.write "操作成功!"&storefname
case 1001
response.write "模板不存在,請先繫結!"
case 1002
response.write "模板內容為空!"
case 1003
response.write "檔案目錄建立失敗!"
case else
end select
end sub
'在使用 set 釋放物件時自動執行
private sub class_terminate
set objfso = nothing
end sub
end class
asp中生成靜態HTML
演示 http asp2004.temp treemenu menu.asp dim str function menu id set rs server.createobject adodb.recordset sql select from menu where id1 id order by ...
asp生成靜態頁面 生成html
網頁生成靜態html檔案有許多好處,比如生成html網頁有利於被搜尋引擎收錄,不僅被收錄的快還收錄的全.前台脫離了資料訪問,減輕對資料庫訪問的壓力,加快網頁開啟速度.像www.aspid.cn的主站就採用了tsys生成html檔案 所以吟清最近對生成html比較感興趣,看了不少文章,也有一點點收穫....
ASP生成靜態Html檔案技術
1,下面這個例子直接利用fso把html 寫入到檔案中然後生成.html格式的檔案 htmlwrite.write 輸出title內容 request.form title 輸出body內容 request.form body htmlwrite.close set fout nothing set...