推荐:用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,有一些人不赞成。但这个问题到底要怎么说。不妨听听