<%head = \”搜索\”SearchString = Request(\”SearchString\”)count=0Function UnMapPath( Path ) UnMapPath = Replace(Mid(Path, Len(Server.MapPath(\”/\”)) + 1), \”\\\”, \”/\”)
\’ 把当前目录的实际路径转换为虚拟路径.End FunctionFunction 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 IfEnd FunctionFunction FileLink( f, title ) vPath = UnMapPath( f.Path )
\’ 获取路径. If title = \”\” Then title = f.Name
\’ 做个链接. FileLink = \”<A HREF=\”\”\” & vPath & \”\”\”>\” & title & \”</A>\” FileLink = \”<UL>·\” & FileLink & \”</UL>\”End FunctionSub 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 NextEnd 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,SearchStringEnd If%><hr></body></html>
[1]