asp的站内搜索功能

下面代码可以全部复制粘贴到一个search.asp文件中,就能够实现静态页面的全文检索功能了。适合于页面数较少的站点,估计超过100个页面性能就很差了。

< %
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
   fo.Close
   SearchFile 
=   InStr ( 1 , content, S, vbTextCompare)  >   0  
   
If  SearchFile  Then
      pos1 
=   InStr ( 1 , content,  " <TITLE> " , vbTextCompare)
      pos2 
=   InStr ( 1 , content,  " </TITLE> " , vbTextCompare)
      title 
=   ""
      
If  pos1  >   0   And  pos2  >   0   Then
         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
         
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 " >
< title >< % = Head% ></ title >
</ head >

< body bgcolor = " #FFFFFF " >

< h1 >< % = Head% ></ h1 >

< hr >

< ! --  注意search.asp为本文件,可根据需要修改! -->

< 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( " ./ " ) )    ' 设置开始搜索的路径(将遍历其所有子目录,当前设置为search.asp所在目录)!

If  SearchString  <>   ""   Then
   Response.Write 
" <H2>搜索<font color=red> "   &  SearchString  &   " </font>结果如下:</H2><P> "
   SearchFolder fd,SearchString
End   If
%
>
< hr >
</ body >
</ html >
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值