第4章 asp网络编程.pdf
《第4章 asp网络编程.pdf》由会员分享,可在线阅读,更多相关《第4章 asp网络编程.pdf(80页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、用 ASP 编程实现网络内容快速查找 用 ASP 编程实现网络内容快速查找 用 ASP 编程实现网络内容快速查找 来源:未知(读取中.)2005-10-28【字体:大 中 小】切换为 有一天我突发奇想,要是我每到一个网站,那里都能立刻调出我需要看的信息,那岂非美妙得很。接下来我想更深入地考虑这个问题,坐到椅子上拿一支铅笔,却不知道自己写什么。如此一来,我还是得着手对付代码它们。我的朋友开了一个小型站点,原本是我设计的。这是个检验我想法的好平台。所以我写出代码,上传了文件。真叫人兴奋,程序工作起来煞是圆满,同时也证明我的想法的确不错。以前看过一些网络使用者倾向报告,其中有一个规律给我印象很深。说
2、是大多数用户如果在三次点击内无法找到自己需要的内容,就会立刻离开该站点。我的代码就可以针对这个问题,保险用户只要点一次鼠标就找到目标。在我的例子里,假设有个用户上了Yahoo,检索关键字为Fireplace Accessories(飞行器材配件)。在给出的结果里,他来到我朋友的站点,将看到你正在搜索Fireplace Accessories等字样的画面。接着他会按照网站上的提示,直接到想要去的页面。你要作的第一步,是在 global.asa 文件中建立一个初始变量,放置在你的 Sub Session_onStart()程序中。Sub Session_onStart()Referer=Trim(
3、Request.ServerVariables(HTTP_REFERER)If Referer=Then Referer=None End If Session(Referer)=Referer End Sub 接着我们来着手看看如何完成程序的主要功能。因为 url 经过了编码,所以首先要把来访者主机的指向数据还原成对我们有用的东西。建立一个 ASP 页面,叫它 decode.asp,是我们程序的主干。第一个功能是要对编码过的指向头进行解码。程序有点长,而且很直接,没有什么转弯抹角,如果你嫌麻烦,不如到 的网虫进修班上面找到本文,用拷贝/粘贴大法吧。源代码 第二件要作的事情是:从 URL 头信
4、息里分离出查询部分-这个才是我们需要的。从指向 URL 中分离查询字段。Function isProduct(pStr)If pStr And lCase(pStr)none Then 向后搜索字段 temp=inStrRev(pStr,/)得到目录分离的位置 tempStr=Right(pStr,temp)得到有关数据长度 temp2=Len(pStr)得到查询数据行 pStr=Mid(pStr,temp,temp2)设定返回功能的值 isProduct=pStr Else isProduct=End If End Function 接着是要确立查找的明确标准。为达到这个目的,建立两个静态空
5、间指?查找指向数据 Function Finder(byRef prodList,byVal refList)模糊查询 refList=lCase(refList)通过指针循环查找匹配字段 For i=0 To uBound(prodList)-1 If inStr(refList,lCase(prodList(i,0)Then 找到匹配 tHolder=tHolder&Are You looking For _&_&prodList(i,0)&End If 第二次循环 Next 返回结果 Finder=tHolderEnd Function 通过一个 inclue,把我们做好的 decode
6、.asp 放到需要此功能的任何页面,大功告成啦。具体如下:如果指向头不为空,调出此功能 If lCase(Session(Referer)none OR Session(Referer)Then 解析指向数据 Response.Write vbCrLf&_&Finder(pArray,URLDecode(isProduct(Session(Referer)_&vbCrLf End If 关注此文的读者还看过:2009-11-30 14:34:46 asp调用js代码 2009-11-10 10:44:16 ASP利用prototype和Google的weather api做天气预报 2009-
7、10-26 12:40:01 asp版域名查询的数据库接口 2009-9-28 13:15:20 Asp文件操作函数集 2009-9-24 17:15:19 ASP使用FCKEditor的设置技巧 2007-11-21 8:25:14 用ASP实现IE地址栏参数的判断 2007-11-8 5:39:29 ASP处理XSLT转换XML的实现 2007-11-2 21:07:31 ASP实现不存在的网页就自动发送邮件 评论内容:评论内容:不能超过 100 字,需审核,请自觉遵守互联网相关政策法规。原文网址:http:/ 用 ASP 编写下载网页中所有资源的程序 用 ASP 编写下载网页中所有资源的
8、程序 用 ASP 编写下载网页中所有资源的程序 来源:未知(读取中.)2005-10-28【字体:大 中 小】切换为 看过一篇关于下载网页中图片的文章,它只能下载以http头的图片,我做了些改进,可以下载网页中的所有连接资源,并按照网页中的目录结构建立本地目录,存放资源。download.asp?url=你要下载的网页 download.asp代码如下:%Server.ScriptTimeout=9999 function SaveToFile(from,tofile)on error resume next dim geturl,objStream,imgs geturl=trim(from
9、)Mybyval=getHTTPstr(geturl)Set objStream=Server.CreateObject(ADODB.Stream)objStream.Type=1 objStream.Open objstream.write Mybyval objstream.SaveToFile tofile,2 objstream.Close()set objstream=nothing if err.number0 then err.Clear end function function geturlencodel(byval url)中文文件名转换 Dim i,code geturl
10、encodel=if trim(Url)=then exit function for i=1 to len(Url)code=Asc(mid(Url,i,1)if code0 Then code=code+65536 If code255 Then geturlencodel=geturlencodel&%&Left(Hex(Code),2)&%&Right(Hex(Code),2)else geturlencodel=geturlencodel&mid(Url,i,1)end if next end function function getHTTPPage(url)on error re
11、sume next dim http set http=Server.createobject(Msxml2.XMLHTTP)Http.open GET,url,false Http.send()if Http.readystate4 then exit function getHTTPPage=bytes2BSTR(Http.responseBody)set http=nothing if err.number0 then err.Clear end function Function bytes2BSTR(vIn)dim strReturn dim i,ThisCharCode,NextC
12、harCode strReturn=For i=1 To LenB(vIn)ThisCharCode=AscB(MidB(vIn,i,1)If ThisCharCode&H80 Then strReturn=strReturn&Chr(ThisCharCode)Else NextCharCode=AscB(MidB(vIn,i+1,1)strReturn=strReturn&Chr(CLng(ThisCharCode)*&H100+CInt(NextCharCode)i=i+1 End If Next bytes2BSTR=strReturn End Function function get
13、FileName(byval filename)if instr(filename,/)0 then fileExt_a=split(filename,/)getFileName=lcase(fileExt_a(ubound(fileExt_a)if instr(getFileName,?)0 then getFileName=left(getFileName,instr(getFileName,?)-1)end if else getFileName=filename end if end function function getHTTPstr(url)on error resume ne
14、xt dim http set http=server.createobject(MSXML2.XMLHTTP)Http.open GET,url,false Http.send()if Http.readystate4 then exit function getHTTPstr=Http.responseBody set http=nothing if err.number0 then err.Clear end function Function CreateDIR(ByVal LocalPath)建立目录的程序,如果有多级目录,则一级一级的创建 On Error Resume Next
15、LocalPath=Replace(LocalPath,/)Set FileObject=server.CreateObject(Scripting.FileSystemObject)patharr=Split(LocalPath,/)path_level=UBound(patharr)For I=0 To path_level If I=0 Then pathtmp=patharr(0)&/Else pathtmp=pathtmp&patharr(I)&/cpath=Left(pathtmp,Len(pathtmp)-1)If Not FileObject.FolderExists(cpat
16、h)Then FileObject.CreateFolder cpath Next Set FileObject=Nothing If Err.Number 0 Then CreateDIR=False Err.Clear Else CreateDIR=True End If End Function function GetfileExt(byval filename)fileExt_a=split(filename,.)GetfileExt=lcase(fileExt_a(ubound(fileExt_a)end function function getvirtual(str,path,
17、urlhead)if left(str,7)=http:/then url=str elseif left(str,1)=/then start=instrRev(str,/)if start=1 then url=/else url=left(str,start)end if url=urlhead&url elseif left(str,3)=./then str1=mid(str,inStrRev(str,./)+2)ar=split(str,./)lv=ubound(ar)+1 ar=split(path,/)url=/for i=1 to(ubound(ar)-lv)url=url&
18、ar(i)next url=url&str1 url=urlhead&url else url=urlhead&str end if getvirtual=url end function 示例代码 dim dlpath virtual=/downweb/truepath=server.MapPath(virtual)if request(url)then url=request(url)fn=getFileName(url)urlhead=left(url,(instr(replace(url,/,),/)+1)urlpath=replace(left(url,instrRev(url,/)
19、,urlhead,)strContent=getHTTPPage(url)mystr=strContent Set objRegExp=New Regexp objRegExp.IgnoreCase=True objRegExp.Global=True objRegExp.Pattern=(src|href)=.+?Set Matches=objRegExp.Execute(strContent)For Each Match in Matches str=Match.Value str=replace(str,src=,)str=replace(str,href=,)str=replace(s
20、tr,)str=replace(str,)filename=GetfileName(str)getRet=getVirtual(str,urlpath,urlhead)temp=Replace(getRet,/,*)start=instr(temp,/)endt=instrRev(temp,/)-start+1 if start0 then repl=virtual&mid(temp,start)&response.Write repl&br mystr=Replace(mystr,str,repl)dir=mid(temp,start,endt)temp=truepath&Replace(d
21、ir,/,)CreateDir(temp)response.Write getRet&|&temp&filename&brbr SaveToFile getRet,temp&filename end if Next set Matches=nothing end if%评论内容:评论内容:不能超过 100 字,需审核,请自觉遵守互联网相关政策法规。原文网址:http:/ 用 ASP 实现网页 BBS 用 ASP 实现网页 BBS 用 ASP 实现网页 BBS 来源:未知(读取中.)2005-10-26【字体:大 中 小】切换为 传统的网页 BBS 大多是采用 CGI 模式实现的,它的实现要求编
22、程者既要掌握编程语言如 Perl 或 C 等,又要了解关于 CGI 模式的各项技术内容,因此要制作自己的网页 BBS 确实困难不小。ASP(Active Server Pages 动态服务器主页)的出现,使我们眼前一亮,能不能利用 ASP 实现网页 BBS 呢?回答当然是肯定的。ASP 的诱人之处就在于它提供了一种简单易学的脚本,并带有许多内置的对象,从而提供了一条简捷的编程之路。该 BBS 主要由用户注册(浏览器端)、用户注册(服务器端)、加帖子(浏览器端)、加帖子(服务器端)、帖子具体内容的显示和回复以及所有帖子的显示六个部分组成,其中用户信息存放在数据库 author.mdb 中,帖子存
23、放在数据库bbs.mdb 中。它们均为 ACCESS 数据库,结构分别如表 1、表 2 所示。表 1 author.mdb 字段名 数据类型 长度 说明 Authname 文本 24 用户名 Password 文本 10 密码 表 2 bbs.mdb 字段名 数据类型 长度 说明 ID 文本 4 帖子的编号 Authname 文本 24 用户名 Subject 文本 80 主题 Content 备注 内容 Adddate 日期/时间 加贴的日期 Visitnum 数字 长整型 访问人数 Answernum 文本 4 所回复帖子的编号 (缺省为本身的编号)Addtime 日期/时间 加贴的时间
24、Topnum 文本 4 第一层回复帖子的编号 具体实现方法如下所示,其中 asp 文件和数据库存放在“/hosp/asp中,其它htm 文件存放在“/hosp文件中,img 文件存放在“/hosp/images。1、用户注册(浏览器端)login.htm:由用户输入相关信息,通过表单传送到服 务器。html headtitle register a new user/titlehead body FORM METHOD=POST ACTION=/hosp/asp/register.aspP H2为了标识方便,请您注册一个用户名称/H2 用户:INPUT TYPE=TEXT name=name
25、SIZE=24P 密码:INPUT TYPE=password name=password SIZE=24P INPUT TYPE=SUBMIT VALUE=注 册 INPUT TYPE=RESET VALUE=清 除 a href=/hosp/asp/dispbbs.asp返回论坛/aP /body /html 2、用户注册(服务器端)Register.asp:利用 REQUEST.FORM(表单栏位名)接收表单信息,采用 ADO 技术与数据库 author.mdb 连接,并将表单信息存入author.mdb 中。html headtitle 存用户信息/title/head body !-
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 第4章 asp网络编程 asp 网络 编程
限制150内