ASP生成HTML讲座笔记
?2005-7-9 ASP生成HTML講座筆記
題目:ASP自動生成HTML文件
首先這項技術的優點是:(1)減輕數據庫的壓力;(2)把數據庫和頁面隔離開來
然后給大家講一下實現原理..
ASP生成HTML其實是使用服務器的FSO內置對象..
其定義方法為
set fs=createobject("scripting.filesystemobject") '設置FSO對象
在建立FSO對象后就可以對服務器進行文件及文件夾管理操作...
所以在服務器新建一個網頁文件也是很輕松的事...
sub SaveText(FileName,Data)? '這是一個用于寫文本文件的過程
??? dim fs,ts,path '定義變量
set fs=createobject("scripting.filesystemobject") '設置FSO對象
if instr(filename,":\")<>0 then '判斷是不是絕對路徑
?? path=filename
else
?? path=server.MapPath(FileName)
end if
??? set ts=fs.createtextfile(path,true) '創建文件對象
??? ts.writeline(data) '寫數據
??? ts.close '關閉對象
??? set ts=nothing
??? set fs=nothing
end sub
這是一個建立所在類型文件的子程序..
對重要語句都給了一定的注釋...
功能就是向服務器的指定路徑創建一個文件并將數據寫進去..
其調用方式為:
savetext "D:\chris.html","chris"
大家可以在自己的電腦上試一下..
第一個參數為Chris.html
文件內容為chris
了解了創建文件的原理之后就可以對網站進行批量網頁生成..
但是在生成以前我們必須得為生成的頁面制作一個模板...
下面我舉個例子..
Mode.asp
------------------
<body onLoad="window.focus();">
<table width="700" border="0" align="center" cellpadding="0" cellspacing="0" class="table">
? <tr>
??? <td><br>
????? <table width="600" border="0" align="center" cellpadding="0" cellspacing="0">
??????? <tr>
????????? <td style="LEFT: 0px; WIDTH: 600 xp; WORD-WRAP: break-word"><p><font size="2"><%=rs("bigclass")%> -> <%=rs("smallclass")%> -> <font color="#FF9B9B"><%=rs("title")%></font></font></p>
??????????? <p><font size="2"><%response.Write(ubbcode(rs("content")))%></font></p>
??????????? <p> </p>
??????????? <p align="right"><font size="2">摘自:<%=rs("path")%> </font></p></td>
??????? </tr>
????? </table></td>
? </tr>
? <tr>
??? <td><div align="center"><font size="2"><br>
??????? 發布時間:<font color="#FF9B9B"><%=rs("time")%></font> 瀏覽次數:<font color="#FF9B9B"><%=rs("browse")%></font></font></div></td>
? </tr>
? <tr>
??? <td> </td>
? </tr>
</table>
</body>
這是一個模板文件....
下面要做的操作就是制作一個生成頁面...
這個生成頁面要做的工作是將Mode.asp的文件內容讀出.然后將其需要動態替換的地方替換成需要的內容..
set fso=server.CreateObject("scripting.filesystemobject") '創建一個FSO對象
set myfile=fso.getfile(filepath)??? '設置一個文件對象..filepath就是這個模板文件的名稱
set ts=myfile.openastextstream???? '設置一個文本對象..并打開這個對象...
if not ts.atendofstream then content=changecontent(ts.readline)
do while not ts.atendofstream
content=content+vbcrlf
content=content+changecontent(ts.readline)
loop
將模板文件的內容賦值到content變量里...
再對其模板內容處理后生成新的網頁文件...
例如
Replace(content,"<%=rs("title")%"&">",title)
將模板文件的<%=Rs("title")%>替換為文章標題...
其他的Content,Time,Browse以此類推...
Content進行處理后就是一個完整的網頁文件..
將其輸出就完成了網頁的生成..
sub SaveText(FileName,Data)? '這是一個用于寫文本文件的過程
??? dim fs,ts,path '定義變量
set fs=createobject("scripting.filesystemobject") '設置FSO對象
if instr(filename,":\")<>0 then '判斷是不是絕對路徑
?? path=filename
else
?? path=server.MapPath(FileName)
end if
??? set ts=fs.createtextfile(path,true) '創建文件對象
??? ts.writeline(data) '寫數據
??? ts.close '關閉對象
??? set ts=nothing
??? set fs=nothing
end sub
savetext CreateFileName,Content '調用寫文件子程序
使用模板自動生成原理基本上就是這樣...
主要問題在于大家使用過程中的一些細節問題的注意...
一會兒我會讓大家看一個比較成熟的FSO的展示程序...
set myfile=fso.getfile(uta(filepath))
----------------------
在FSO對象的基礎上建立一個文件對象...
myfile=你指定的那個文件..
if not ts.atendofstream then content=changecontent(ts.readline) '判斷文件是否為空.如果不為空才進行賦值操作
do while not ts.atendofstream 'AtEndOfStream判斷是不是文件的末尾
content=content+vbcrlf
content=content+changecontent(ts.readline)
loop
FSO對象的屬性和方法比較多...如果大家感興趣可以參考一下VBS參考手冊..
我在這里只是起一個引導作用...給大家講解一下成生網頁文件..
content=content+vbcrlf
content=content+changecontent(ts.readline)
是做什么的
------------------------------------
把文件按行讀出來...
AtEndOfStream判斷是不是文件的末尾 剛才Chris已經講了
do while not ts.atendofstream? 'AtEndOfStream判斷是不是文件的末尾 content=content+vbcrlf
content=content+changecontent(ts.readline)
loop
的意思就是說,把文件中的一行一行讀出來
只是一個函數..
function uta(val)
uta=replace(val,"*","&")
end function
filepath是在哪里取的?
filepath就是你那個文件所在地呀
2005-07-09 15:36:19 偸米飯(44018790)
Chris?
changecontent這個函數有什么用??
changecontent是一個函數,可能是替換里面的一些字符
那些都是一些Replace的替換操作...
你們根據自己需要進行處理...
不一定必須...
整體原理就是利用FSO的創建文件方法在服務器創建一個網頁文件..
然后把代碼寫到創建的文件里...就是這樣..
轉載于:https://www.cnblogs.com/panweiweb/archive/2005/11/21/281168.html
總結
以上是生活随笔為你收集整理的ASP生成HTML讲座笔记的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 在迷失中前进--hatita22年蹉跎岁
- 下一篇: 使用Flash读取COOKIE