ASP自動產生HTML檔案方法

來源:互聯網
上載者:User
首先這項技術的優點是:(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的建立檔案方法在伺服器建立一個網頁檔案..
然後把代碼寫到建立的檔案裡...就是這樣..

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.