<% head = "搜索" SearchString = Request("SearchString") count=0
Function UnMapPath( Path ) UnMapPath = Replace(Mid(Path, Len(Server.MapPath("/")) + 1), "\", "/") ' 把当前目录的实际路径转换为虚拟路径. End Function
Function SearchFile( f, s, title ) Set fo = fs.OpenTextFile(f) content = fo.ReadAll ' 把全部文本读到content. fo.Close SearchFile = InStr(1, content, S, vbTextCompare) > 0 ' 从第一个字符开始检查content里面是否有S. If SearchFile Then ' 如果有,则提出文件title存入变量. pos1 = InStr(1, content, "<title>", vbTextCompare) pos2 = InStr(1, content, "</title>", vbTextCompare) title = "" If pos1 > 0 And pos2 > 0 Then ' 取title标记中间的字符. title = Mid( content, pos1 + 7, pos2 - pos1 - 7 ) End If End If End Function
Function FileLink( f, title ) vPath = UnMapPath( f.Path ) ' 获取路径. If title = "" Then title = f.Name ' 做个链接. FileLink = "<A HREF=""" & vPath & """>" & title & "</A>" FileLink = "<UL>·" & FileLink & "</UL>" End Function
Sub SearchFolder( fd, s ) found = False For each f In fd.Files pos = InStrRev(f.Path, "." ) If pos > 0 Then ext = Mid(f.Path, pos + 1 ) Else ext = "" End If If LCase(ext) = "htm" Then ' 显示扩展名字为HTM的文件. If SearchFile( f, s, title ) Then Response.Write FileLink(f, title) count=count+1 Response.Write cstr(count) End If End If Next
For each sfd In fd.SubFolders SearchFolder sfd, s Next End Sub %> <html>
<head> <meta http-equiv="Content-Type" content="text/html; charset=gb_2312-80"> <meta name="GENERATOR" content="Microsoft FrontPage Express 2.0"> <title><%=head%></title> </head>
<body>
<h1>星河影动之无敌文本搜索<%=head%></h1>
<hr>
<form action="search.asp" method="Get"> <p>请输入想要搜索的内容: <input type="text" size="20" name="SearchString" value="<%=SearchString%>"> <input type="submit" value="搜索"> </p> </form> <% Set fs = Server.CreateObject("Scripting.FileSystemObject") Set fd = fs.GetFolder( Server.MapPath("/") ) ' 设置开始搜索的路径.
If SearchString <> "" Then Response.Write "<H2>搜索<font color=red>" & SearchString & "</font>结果如下:</H2><P>" SearchFolder fd,SearchString End If %> <hr> </body></html> [1] |
请发表评论