ASP 根據模板生成HTML靜態檔案類

2021-06-04 06:20:04 字數 4555 閱讀 5425

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...