推薦:用asp自動解析網頁中的圖片地址現在基於WEB頁的HTML的編輯器在新聞系統,文章系統中用得越來越廣,一個網頁一粘就可以保持原來的樣式,同時圖片也可以在這個頁中保持。但是在使用過程中,如果所粘貼頁中的圖片被刪除,就會在
ASP是Microsoft公司推出的一種用以取代通用網關接口的技術,英文全稱Active Server Pages。它是一個Web服務器端的運行環境。 ASP本身包含了VBScript和javascript引擎,使得腳本可以直接嵌入HTML中。現將我們在ASP運用過程中的幾個小技巧與大家分享。
一、新聞欄
大多數網頁上有新聞欄,用以顯示最近新聞的主題,點擊此主題即可查看詳細報導。倘若每天都一條條寫在網頁上,再依次建立鏈接太過麻煩。如何讓其可以根據文件自動更新呢?
1.預備工作:
1)建一個文件夾,起名為news,假設存於D:/ASP/目錄下;
2)把每條新聞的詳細內容寫入文件,且此文件的命名形式為:x (newstime).htm。其中x為此條新聞的主題,newstime為此條新聞發布的時間(按年-月-日順序寫)。為什麼要這樣寫呢?看了下面的算法思想和源程序就知道了。
2.算法思想:對於news文件夾中的文件,依據它們文件名中新聞發布的時間(即括號內的內容),從大到小排序。這樣一來,最新的新聞排在最上面,只要在網頁相應位置顯示news文件夾中最上面的若干個文件名,因為文件名的命名方式如1中所述,就可以在新聞欄中顯示最新新聞了。
3.源程序段(用VBScript編寫的)
| 以下為引用的內容: <% Dim fs, f, f1, fc, filenum dim count dim i,j,t1,t2 dim file(100) dim mystr(100) '標誌文件中日期的字符串 count=0 Set fs = CreateObject(Scripting.FileSystemObject) Set f = fs.GetFolder(D:/ASP/news ) Set fc = f.Files for each f1 in fc count=count 1 '計文件個數 file(count)=fs.getbasename(f1) '標記文件基名 mypos=InStr(1, file(count), () ')在文件基名中的位置 '文件基名中的日期字符串 mystr(count) = Mid(file(count), mypos 1, Len(file(count)) - (mypos 1)) next for i=1 to count for j=1 to count-i if mystr(j)<mystr(j 1) then t1=file(j) file(j)=file(j 1 file(j 1)=t1 t2=mystr(j) mystr(j)=mystr(j 1) mystr(j 1)=t2 end if next next j=1 if count<10 then '新聞欄中共顯示10條新聞 temcount=count else temcount=10 end if do while j<=temcount%> <a href=file:///D:/ASP/news/<%=file(j)%>.htm target=new_window><%=file(j)%> </a> <% j=j 1 loop %> |
4.新聞欄內容更新:
只要養成良好的書寫習慣,使得新聞的名稱遵照1的要求,再把寫好的文件存入news文件夾,新聞欄就會自動顯示出最新的10條新聞了。
二、公告欄
除了新聞欄之外,較常用的就是公告欄了,公告欄主要用來顯示一些重要的通知。當然這些通知是要經常變化的。讓用戶每次更改公告內容時都到源程序裡去修改嗎?當然不行,我們必須提供一個維護的界面給用戶,使得用戶只要輸入通知,網頁上的公告欄裡自然就會顯示通知內容了。
1.解決這一問題的關鍵在於靈活應用FileSystemObject對象和TextStream對象。在實際應用中,你無需自行建立TextStream對象,因為只要利用FileSystemObject對像打開了文件,系統便自動建立TextStream對象。也就是說,一旦調用OpenTextFile或CreateTextFile方法,便會傳回TextStream對象。
2.所需相關文件有三個:更新.asp、公告.asp、維護文本.txt,把它們存入d:/ASP/maintain目錄下。
3.三個文件的主要功能和源程序段:
1)更新.asp
主要功能是讓用戶輸入欲顯示的公告,檢驗輸入內容是否為空,若不為空,則提交給公告.asp程序處理。
| 以下為引用的內容: <html> <head> <meta http-equiv=Content-Type content=text/html; charset=gb2312> <meta name=GENERATOR content=Microsoft FrontPage 4.0> <meta name=ProgId content=FrontPage.Editor.Document> <title>更新公告欄內容</title> </head> <body> <script language=vbscript> function datacheck() dim msg,errflag errflag=true if len(trim(maintain.t1.value))=0 then focusto(0) errflag=false msg=請輸入需提交的公告內容 end if if (errflag=false) then msgbox msg,64,oh no! exit function end if datacheck=errflag maintain.submit end function sub focusto(x) document.maintain.elements(x).focus() end sub </script> ①<form method=POST action=公告.asp name=maintain> <p><input type=text name=t1 size=84><input type=reset value=重寫name=B2> <input type=button value=提交name=B1 onclick=datacheck()></p> <hr color=#FF99FF size=1> </form> </body> </html> |
語句①中的action=公告.asp部分,指出了在form提交後要啟動的程序為公告.asp。
2)公告.asp
通過FileSystemObject對象和TextScream對像對維護文本.txt文件進行讀寫操作,使得此文件最上面5行的內容為要在公告欄裡顯示的公告。
| 以下為引用的內容: <% dim str str=request.form(t1) dim s(5) const forreading=1,forwriting=2 dim fso,myfile set fso=server.createobject(scripting.FileSystemObject) set myfile=fso.opentextfile(維護文本.txt,forreading)'以Reading模式打開文件 for i=1 to 5 '公告欄共顯示5條公告 s(i)=myfile.readline'讀取文件內容 next myfile.close set myfile=fso.opentextfile(維護文本.txt,forwriting,true) '以writing模式打開文件 myfile.writeline str for i=1 to 4 myfile.writeline s(i) '將數據寫回文件 next myfile.close %> |
3)維護文本.txt
此文件開始為空,從更新.asp顯示的界面輸入公告後,此文件內容被自動寫入。
4.在主頁文件(通常是default.asp)欲顯示公告位置的代碼段中加入如下代碼,即可顯示出更新後的公告。
| 以下為引用的內容: <marquee scrollamount=2 scrolldelay=50 direction=up width=223 height=133 id=a onmouseover=a.stop() onmouseout=a.start()>'公告欄上下滾動 <% Dim s(20) Dim fso, MyFile Set fso = CreateObject(Scripting.FileSystemObject) Set MyFile = fso.OpenTextFile(D:/ASP/maintain/維護文本.txt,1,true) for i=1 to 5 ReadLineTextFile=MyFile.ReadLine s(i)=ReadLineTextFile response.write ★ & s(i) response.write <br> next %> </marquee> |
上述兩個小技巧舉一反三,可以解決很多此類問題。網頁設計愛好者們不妨一試。
分享:session和cookie的最深刻理解先說session對SESSION的爭論好像一直沒有停止過,不過么麽能理解SESSION的人應該佔90以上。但還是講講,別嫌老~有一些人讚成用SESSION,有一些人不贊成。但這個問題到底要怎麼說。不妨聽聽