ASP生成靜態(tài)網頁的多種方法_第1頁
ASP生成靜態(tài)網頁的多種方法_第2頁
ASP生成靜態(tài)網頁的多種方法_第3頁
ASP生成靜態(tài)網頁的多種方法_第4頁
ASP生成靜態(tài)網頁的多種方法_第5頁
已閱讀5頁,還剩8頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、ASP生成靜態(tài)網頁的多種方法使用FSO生成<%'使用FSO生成Setfs=CreateObject("Scripting.FileSystemObject")NewFile=Server.MapPath("ud03/fso.htm")'新建一文件fso.htm,若該文件已存在,則覆蓋它Seta=fs.CreateTextFile(NewFile,True)Response.Write"新文件已建立!”a.closeFile=Server.MapPath("ud03/fso.htm")Settxt=fs.

2、OpenTextFile(File,8,True)'打開成可以在結尾寫入數據的文件data仁"這句話是使用WriteLine方法寫入的。!<Br>"txt.WriteLinedata1data2="這句話是使用Write方法寫入的。<Br>"txt.Writedata2txt.Close%>使用XMLHTTP生成<%'使用XMLHTTP生成Setxml=Server.CreateObject("Microsoft.XMLHTTP")'把下面的地址替換成你的首頁的文件地址,一定

3、要用http:/開頭的絕對路徑,不能寫相對路徑xml.Open"GET","/ud03/",Falsexml.SendBodyText=xml.ResponseBodyBodyText=BytesToBstr(BodyText,"gb2312")Setxml=NothingDimfso,MyFileSetfso=CreateObject("Scripting.FileSystemObject")SetMyFile=fso.CreateTextFile(server.MapP

4、ath("ud03.htm"),True)'生成的html的文件名MyFile.WriteLine(BodyText)MyFile.Close'使用Adodb.Stream處理二進制數據FunctionBytesToBstr(strBody,CodeBase)dimobjStreamsetobjStream=Server.CreateObject("Adodb.Stream")objStream.Type=1objStream.Mode=3objStream.OpenobjStream.WritestrBodyobjStream.Posi

5、tion=0objStream.Type=2objStream.Charset=CodeBaseBytesToBstr=objStream.ReadTextobjStream.ClosesetobjStream=nothingEndFunction%>使用XMLHTTP批量生成<%'使用XMLHTTP批量生成dimstrUrl,ltem_Classid,id,FileName,FilePath,Do_Url,Html_TempHtml_Temp="<UL>"Fori=1To30'需要生成的id:1到30Html_Temp=Html_T

6、emp&"<LI>"Item_Classid=iFileName="Archives."&ltem_Classid&".htm"'生成的html文件名FilePath=Server.MapPath("/")&""&FileNameHtml_Temp=Html_Temp&FilePath&"</LI>"Do_Url="/ud03/index

7、.php"'WEB路徑Do_Url=Do_Url&"?p="&ltem_Classid'WEB路徑之后的IDstrUrl=Do_UrldimobjXmlHttpsetobjXmlHttp=Server.CreateObject("Microsoft.XMLHTTP")objXmlHttp.open"GET",strUrl,falseobjXmlHttp.send()DimbinFileDatabinFileData=objXmlHttp.responseBodyDimobjAdoStreams

8、etobjAdoStream=Server.CreateObject("ADODB.Stream")objAdoStream.Type=1objAdoStream.Open()objAdoStream.Write(binFileData)objAdoStream.SaveToFileFilePath,2objAdoStream.Close()NextHtml_Temp=Html_Temp&"<UL>"%><%Response.Write("成功生成文件:”)Response.Write("<BR&

9、gt;")Response.WriteHtml_Temp%>ASP用標簽替換的方法生成靜態(tài)網頁大家都知道HTML靜態(tài)網頁更容易被搜索引擎收錄索引,動態(tài)生成HTML網頁,也可使網站的網頁數量增多,搜索引擎收錄的數量也可能多,再加下提高網頁的質量也意未著什么呢?我想大家也知道。為了這個,我決定了改變之前網站建設,網頁設計的方法,經過多翻的研究及思考,對多種網頁動態(tài)生成的方法,我比較喜歡用標簽替換的方法成生網頁。標簽替換法:這是我個人理解的定義,不知道別人怎么叫它的,呵呵!標簽替換法,就是在設計好了的網頁模板中,放入自已設定的標簽,然后用你需要顯示出來的東東替換它。如模板文件1這個模

10、板我們保存在數據庫表中temptable<html><head><title>$SiteName</title></head><body>$Arc_List$</body><html>在以上模板中我放入了兩個標簽$SiteName網站名稱和$Arc_List$文章列表,再來看下面的代碼<%dimrs,SiteName,Arc_List,fso,myFile,FilePath,htmlSiteName="我的第一個動態(tài)生成的HTML網頁”FilePath=Server.MapPath(

11、"/html/index.html")setrs=server.createobject("adodb.recordset")rs.open"selecttempfromtemptable,conn,1,1html=rs("temp")'讀取網頁模板rs.close'用自定義的SiteName替換'用自定義的get_ArcList()函'創(chuàng)建文件系統對象html=replace(html,"$SiteName",SiteName)$SiteName標簽html=html&a

12、mp;replace(html,"$Arc_List$",get_ArcList()數替換$Arc_List$標簽setrs=nothingconn.closesetconn=nothingsetfso=CreateObject("*ing.FileSystemObject")SetMyFile=fso.CreateTextFile(FilePath,True)'創(chuàng)建文件MyFile.WriteLine(html)'把htm代碼寫入文件MyFile.close'關閉文件SetMyFile=nothing'釋放文件對象set

13、fso=nothing'釋放系統文件對象response.write"<*Ianguage='java*'>window.alert('文件生成成功了');</*>"response.end()Functionget_ArcList()dimstr,str1str仁""str="<ul>list</ul>"rs.open"selectTitle,urlfromArc"whilenotrs.eofstrl=strl&&qu

14、ot;<li><ahref="&rs("url")&">"&rs("Title")&"</a></li>"rs.movenextwendrs.closestr=replace(str,"list",Strl)get_ArcList=str%>EndFunction以上的方法是不是很簡單,現在很多CMS都是采用這種方法生成靜態(tài)網頁的,這種方法使用比較靈活,只要你用心去設計一下你的系統,以后網做一個網站,

15、只要設計模板就可以了。asp生成靜態(tài)網頁不用模板直接傳參數讀取asp文件<%hps=50indexmulu="/asp/00/pro"”'修改這里為本系統所在相對目錄,以根據自己的程序修改咲*'函數名:htmll'作用:生成靜態(tài)頁面'參數:htmlmulu-HTML模板(asp源文件)存放的目錄'FileName-生成的HTML文件名(不包括.及擴展名)'filefrom-生成的HTML文件.及擴展名'ArrName-參數的名稱數組'ArrContent-對應參數的內容數組咲*Functionhtmll(

16、mulu,htmlmulu,FileName,filefrom,ArrName,ArrContent)ifmulu=""thenmulu="/news/"'默認生成的HTML文件存放的目錄ifhtmlmulu=""thenhtmlmulu="/html/"'默認HTML模板存放的目錄mulu=indexmulu&muluhtmlmulu=indexmulu&htmlmuluFilePath=Server.MapPath(mulu)&""&FileN

17、ameDo_Url="http:"Do_Url=Do_Url&Request.ServerVariables("SERVER_NAME")&htmlmulu&filefromifIsArray(ArrName)thenDo_Url=Do_Url&"?"&ArrName(0)&ArrContent(0)fori=1toUbound(ArrName)Do_Url=Do_Url&"&"&ArrName(i)&ArrContent(i)next

18、endifstrUrl=Do_UrlsetobjXmlHttp=Server.createObject("Microsoft.XMLHTTP")objXmlHttp.open"GET",strUrl,falseobjXmlHttp.send()binFileData=objXmlHttp.responseBodySetobjXmlHttp=NothingsetobjAdoStream=Server.createObject("ADODB.Stream")objAdoStream.Type=1objAdoStream.Open()obj

19、AdoStream.Write(binFileData)objAdoStream.SaveToFileFilePath,2objAdoStream.Close()setobjAdoStream=nothingEndFunction%>ASP生成靜態(tài)網頁的方法下面的例子是將、index.asp?id=1/index.asp?id=2/index.asp?id=3/這三個動態(tài)頁面,分別生成ndex1.htm,index2.htm,index3.htm存在根目錄下面:<%dimstrUrl,ltem_Classid,id,FileName,FilePath,Do_Url,Html_Tem

20、pHtml_Temp="<UL>"Fori=1To3Html_Temp=Html_Temp&"<LI>"Item_Classid=iFileName="Index"&Item_Classid&''.htm"FilePath=Server.MapPath("/")&""&FileNameHtml_Temp=Html_Temp&FilePath&"</LI>"Do

21、_Url="http:/"Do_Url=Do_Url&Request.ServerVariables("SERVER_NAME")&"/main/index.asp"Do_Url=Do_Url&"?ltem_Classid="&ltem_ClassidstrUrl=Do_UrldimobjXmlHttpsetobjXmlHttp=Server.CreateObject("Microsoft.XMLHTTP")objXmlHttp.open"GET&quo

22、t;,strUrl,falseobjXmlHttp.send()DimbinFileDatabinFileData=objXmlHttp.responseBodyDimobjAdoStreamsetobjAdoStream=Server.CreateObject("ADODB.Stream")objAdoStream.Type=1objAdoStream.Open()objAdoStream.Write(binFileData)objAdoStream.SaveToFileFilePath,2objAdoStream.Close()NextHtml_Temp=Html_Te

23、mp&"<UL>"%><%Response.Write("成功生成文件:”)Response.Write("<BR>")Response.WriteHtml_Temp%>非摸板生成靜態(tài)頁目前已經有很多生成html的新聞系統,但是都是用的模板,本函數實現把asp頁面產生的html代碼保存成為一個html文件,這樣就沒有必要改動原來的頁面就可以輕松完成一個生成html的新聞系統了。A_A由于代碼比較短,這里就不進行注釋了<%'當目標頁面的包含文件即#inelude的頁面里邊存在resp

24、onse.End()的時候本程序有問題'注意:本文件一定要放在filename指向的文件的同一目錄下dimhughchiu_rtcodeFunctionget_exe_code(filename)dimexecodedimtmp_strDimre,re1,content,fso,f,aspStart,aspEnddimms,mexecode=""setfso=CreateObject("Scripting.FileSystemObject")setf=fso.OpenTextFile(server.mappath(filename)content

25、=f.ReadAllf.closesetf=nothingsetfso=nothingsetre=newregexpre.ignorecase=truere.global=truere.pattern="<%人%+%>"content=re.replace(content,"")re.global=falsere.pattern="<!-s*#includes*files*=s*""(F""+)""s*->"dosetms=re.execute(con

26、tent)ifms.count<>0thensetm=ms(0)tmp_str=get_exe_code(m.submatches(0)content=re.replace(content,tmp_str)elseexitdoendifloopsetm=nothingsetms=nothingre.pattern="As*="aspEnd=1aspStart=inStr(aspEnd,content,"<%")+2setre1=newRegExprel.ignorecase=truerel.global=falserel.pattern

27、="response.Write(.+)"dowhileaspStart>aspEnd+1execode=execode&vbcrlf&"hughchiu_rtcode=hughchiu_rtcode&""”&replace(replace(Mid(content,aspEnd,aspStart-aspEnd-2),""”,),vbcrlf,""”&vbcrlf&""”)&""”&vbcrlfas

28、pEnd=inStr(aspStart,content,"%>")+2tmp_str=Mid(content,aspStart,aspEnd-aspStart-2)dosetms=re1.execute(tmp_str)ifms.count<>0thensetm=ms(0)tmp_str=re1.replace(tmp_str,"hughchiu_rtcode=hughchiu_rtcode&"&m.submatches(O)elseexitdoendifloopsetm=nothingsetms=nothingexec

29、ode=execode&re.replace(tmp_str,"hughchiu_rtcode=hughchiu_rtcode&")aspStart=inStr(aspEnd,content,"<%")+2loopsetre1=nothingsetre=nothingexecode=execode&vbcrlf&"hughchiu_rtcode=hughchiu_rtcode&""”&replace(replace(Mid(content,aspEnd),"&q

30、uot;”,),vbcrlf,""”&vbcrlf&""”)&""”&vbcrlfget_exe_code="<%"&execode&"%>"EndFunctionfunctionasp2html(filename)dimcodecode=replace(replace(replace(get_exe_code(filename),"hughchiu_rtcode=hughchiu_rtcode&""

31、;”"”&vbcrlf,”),"<%",""),"%>","")'response.Write(code)execute(code)'response.Write(hughchiu_rtcode)asp2html=hughchiu_rtcodeendfunction%>使用范例:setfso=CreateObject("Scripting.FileSystemObject")setf=fso.CreateTextFile(server.mapp

32、ath("youpage.htm"),true)f.WriteLine(asp2html("youpage.asp")f.closesetf=nothingsetfso=nothing可見,雖然是新方法還是需要fso的支持下面代碼可以幫您生成靜態(tài)頁面,如:list.asp是讀數據庫的頁面,要生在list.html靜態(tài)頁面,你的域名是,可以用下面代碼,使用方法:ifSaveFile("/html/list.html","/list.asp")thenResponse.write&

33、quot;已生成”elseResponse.write"沒有生成”endif如生成失敗,請把代碼OnErrorResumeNext封了,查看具體錯誤信息代碼如下:程序代碼<%ifSaveFile("/html/list.html","Response.write"已生成”elseResponse.write"沒有生成”endiffunctionSaveFile(LocalFileName,RemoteFileUrl)DimAds,Retrieval,GetRemoteDataOnErrorResumeNextSetRetriev

34、al=Server.CreateObject("Microso"&"ft.XM"&"LHTTP")WithRetrieval.Open"Get",RemoteFileUrl,False,"”,"".SendGetRemoteData=.ResponseBodyEndWithSetRetrieval=NothingSetAds=Server.CreateObject("Ado"&"db.Str"&"eam&

35、quot;)WithAds.Type=1.Open.WriteGetRemoteData.SaveToFileServer.MapPath(LocalFileName),2.Cancel().Close()EndWithSetAds=nothingiferr<>0thenSaveFile=falseerr.clearelseSaveFile=trueendifEndfunction%>ASP生成靜態(tài)網頁各種方法收集整理新聞系統、blog系統等都可能用到將動態(tài)頁面生成靜態(tài)頁面的技巧來提高頁面的訪問速度,從而減輕服務器的壓力,本文為大家搜集整理了ASP編程中常用的生成靜態(tài)網頁的方

36、法,有使用fso的,也有使用到xmlhttp或者Adodb.Stream的。1. 使用FSO生成<%'使用FSO生成Setfs=CreateObject("Scripting.FileSystemObject")NewFile=Server.MapPath("ud03/fso.htm")'新建一文件fso.htm,若該文件已存在,則覆蓋它Seta=fs.CreateTextFile(NewFile,True)Response.Write"新文件已建立!”a.closeFile=Server.MapPath("ud

37、03/fso.htm")Settxt=fs.OpenTextFile(File,8,True)'打開成可以在結尾寫入數據的文件data仁"這句話是使用WriteLine方法寫入的。!<Br>"txt.WriteLinedata1data2="這句話是使用Write方法寫入的。<Br>"txt.Writedata2txt.Close%>2. 使用XMLHTTP生成<%'使用XMLHTTP生成Setxml=Server.CreateObject("Microsoft.XMLHTTP&qu

38、ot;)'把下面的地址替換成你的首頁的文件地址,一定要用http:/開頭的絕對路徑,不能寫相對路徑xml.Open"GET","/ud03/",Falsexml.SendBodyText=xml.ResponseBodyBodyText=BytesToBstr(BodyText,"gb2312")Setxml=NothingDimfso,MyFileSetfso=CreateObject("Scripting.FileSystemObject")SetMyFile=

39、fso.CreateTextFile(server.MapPath("ud03.htm"),True)'生成的html的文件名MyFile.WriteLine(BodyText)MyFile.Close'使用Adodb.Stream處理二進制數據FunctionBytesToBstr(strBody,CodeBase)dimobjStreamsetobjStream=Server.CreateObject("Adodb.Stream")objStream.Type=1objStream.Mode=3objStream.OpenobjStr

40、eam.WritestrBodyobjStream.Position=0objStream.Type=2objStream.Charset=CodeBaseBytesToBstr=objStream.ReadTextobjStream.ClosesetobjStream=nothingEndFunction%>3. 使用XMLHTTP批量生成<%'使用XMLHTTP批量生成dimstrUrl,ltem_Classid,id,FileName,FilePath,Do_Url,Html_TempHtml_Temp="<UL>"Fori=1To30

41、'需要生成的id:1到30Html_Temp=Html_Temp&"<LI>"Item_Classid=iFileName="Archives."&ltem_Classid&".htm"'生成的html文件名FilePath=Server.MapPath("/")&""&FileNameHtml_Temp=Html_Temp&FilePath&"</LI>"Do_Url="

42、;/ud03/index.php"'WEB路徑Do_Url=Do_Url&"?p="&ltem_Classid'WEB路徑之后的IDstrUrl=Do_UrldimobjXmlHttpsetobjXmlHttp=Server.CreateObject("Microsoft.XMLHTTP")objXmlHttp.open"GET",strUrl,falseobjXmlHttp.send()DimbinFileDatabinFileData=objXml

43、Http.responseBodyDimobjAdoStreamsetobjAdoStream=Server.CreateObject("ADODB.Stream")objAdoStream.Type=1objAdoStream.Open()objAdoStream.Write(binFileData)objAdoStream.SaveToFileFilePath,2objAdoStream.Close()NextHtml_Temp=Html_Temp&"<UL>"%><%Response.Write(”成功生成文件:”)

44、Response.Write("<BR>")Response.WriteHtml_Temp%>4. 自動按模板生成網站首頁<%Response.Expires=0Response.expiresabsolute=Now()-1Response.addHeader"pragma","no-cache"Response.addHeader"cache-control","private"Response.CacheControl="no-cache"Res

45、ponse.Buffer=TrueResponse.ClearServer.ScriptTimeOut=999999999onerrorresumenext咲*'*定義從模板從讀取首頁函數'*說明:模板文件名為:index_Template.asp咲*FunctionGetPage(url)SetRetrieval=CreateObject("Microsoft.XMLHTTP")WithRetrieval.Open"Get",url,False,"","".SendGetPage=BytesToB

46、str(.ResponseBody)EndWithSetRetrieval=NothingEndFunctionFunctionBytesToBstr(body)dimobjstreamsetobjstream=Server.CreateObject("adodb.stream")objstream.Type=1objstream.Mode=3objstream.Openobjstream.Writebodyobjstream.Position=0objstream.Type=2objstream.Charset="GB2312"BytesToBstr=objstream.ReadTextobjstream.Closesetobjstream=nothingEndFunction咲*'*生頁首頁,文件名為:default.htm咲*dimTstr

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論