欢迎光临
我们一直在努力

用ASP做一个TOP COOL的站内搜索。

建站超值云服务器,限时71元/月

该搜索引擎由一个htm文件一个asp文件组成,主要是运用filesystemobject组件来达到目的,功能强大,修改界面以后可以直接拿来使用,当然加上一点自己的东西就更加好了。

searchpage.htm
该htm文件用来传入条件

<html>
    <head>
        <title>asp搜索引擎范例</title>
    </head>
    <body>
        <center>
            <form method=post action="search.asp">
                
    <table bgcolor="#cc6633" border="0">
      <tr>
                        
        <td rowspan="3" bgcolor="#cc6633" width="21" nowrap>  </td>
                        
        <td width="363" nowrap> <font color="#ffffff">
          <input type="text" name="searchtext" size="22">
                                <input type="checkbox" name="case">
          高度敏感</font> </td>
                        
        <td rowspan="3" width="10">
          <input type="submit" value="确定">
                                <p>
                            
            <input type="reset" value="清除">
                        </td>
                        
        <td rowspan="3" bgcolor="#cc6633" width="28">  </td>
                    </tr>
                    <tr>
                        
        <td width="363" nowrap> <font color="#ffffff"> 返回结果
          <select name="rlength" >
            <option value="200" selected>长信息 </option>
            <option value="100">短信息</option>
            <option value="0">只返回连接</option>
          </select>
                                <select name="rresults">
                                    <option value="10" selected>10
                                    <option value="25">25
                                    <option value="50">50
                                </select>
                            </font>
                        </td>
                    </tr>
                    <tr>
                        
        <td width="363" nowrap> <font color="#ffffff"> 必须包括:
          <input type="checkbox" name="iimage">
          图片
<input type="checkbox" name="izips">
          zip格式
<input type="checkbox" name="ijavas"> javascript
                            </font>
                        </td>
                    </tr>
                </table>
            </form>
            </center>
        
<dl>
  <dd>  </dd>
        </dl>
    </body>
</html>

————————————————————————
显示结果的asp程序
search.asp

<html>
<head>
<title><%=request("searchtext")%>的搜索结果</title>
</head>
<body>
<b><%=request("searchtext")%>的搜索结果</b><br>
<%
const fsoforreading = 1
dim objfile, objfolder, objsubfolder, objtextstream
dim bolcase, bolfilefound, boltagfound
dim strcount, strdetag, strext, strfile, strcontent, strroot, strtag, strtext, strtitle, strtitlel
dim reqimage, reqjavas, reqlength, reqnumber, reqzip

strfile = ".asp .htm .html .js .txt .css"
strroot = "/"
strtext = request("searchtext")
strtag = chr(37) & chr(62)
bolfilefound = false
boltagfound = false
if request("case") = "on" then bolcase = 0 else bolcase = 1
if request("iimage") = "on" then reqimage = "<img" else reqimage = ""
if request("izips") = "on" then reqzips = ".zip" else reqimage = ""
if request("ijavas") = "on" then reqjavas = "javascript" else reqimage = ""
if request("rresults") = "10" then reqnumber = 10
if request("rresults") = "25" then reqnumber = 25
if request("rresults") = "50" then reqnumber = 50
reqlength = request("rlength")

set objfso = server.createobject("scripting.filesystemobject")
set objfolder = objfso.getfolder(server.mappath(strroot))

schsubfol(objfolder)

sub schsubfol(objfolder)
    for each objfile in objfolder.files
        if strcount + 1 > reqnumber or strtext = "" then exit sub
        if response.isclientconnected then
            set objtextstream = objfso.opentextfile(objfile.path,fsoforreading)

            strcontent = objtextstream.readall

            if instr(1, strcontent, strtag, bolcase) then
            else
                if mid(objfile.name, len(objfile.name) – 1, 1) = "." then strext = mid(objfile.name, len(objfile.name) – 1, 2)
                if mid(objfile.name, len(objfile.name) – 2, 1) = "." then strext = mid(objfile.name, len(objfile.name) – 2, 3)
                if mid(objfile.name, len(objfile.name) – 3, 1) = "." then strext = mid(objfile.name, len(objfile.name) – 3, 4)
                if mid(objfile.name, len(objfile.name) – 4, 1) = "." then strext = mid(objfile.name, len(objfile.name) – 4, 5)
                if instr(1, strcontent, strtext, bolcase) and _
                    instr(1, strcontent, reqimage, 1) and _
                    instr(1, strcontent, reqzips, 1) and _
                    instr(1, strcontent, reqjavas, 1) and _
                    instr(1, strfile, strext, 1) then
                    if instr(1, strcontent, "<title>", 1) then strtitle = mid(strcontent, instr(1, strcontent, "<title>", 1) + 7, instr(1, strcontent, "</title>", 1)) else strtitle = "未命名"

                    strcount = strcount + 1
                    response.write "<dl><dt><b><i>"& strcount &"</i></b> – <a href=" & objfile.path & ">" & strtitle & "</a></a></dt><br><dd>"
                    strtitlel = instr(1, strcontent, "</title>", 1) – instr(1, strcontent, "<title>", 1) + 7

                    strdetag = ""
                    boltagfound = false

                    do while instr(strcontent, "<")
                        boltagfound = true
                        strdetag = strdetag & " " & left(strcontent, instr(strcontent, "<") – 1)
                        strcontent = mid(strcontent, instr(strcontent, ">") + 1)
                    loop

                    strdetag = strdetag & strcontent
                    if not boltagfound then strdetag = strcontent

                    if reqlength = "0" then response.write objfile.path & "</dd></dl>" else response.write mid(strdetag, strtitlel, reqlength) & "…<br><b><font size=2>url: " & objfile.path & " – 上次修改时间: " & objfile.datelastmodified & " – " & formatnumber(objfile.size / 1024) & "kbytes</font></b></dd></dl>"
                    bolfilefound = true
                end if
                objtextstream.close
            end if
        end if
    next
end sub

for each objsubfolder in objfolder.subfolders
    schsubfol(objsubfolder)
next

if not bolfilefound then response.write "没有匹配结果"
if bolfilefound then response.write "<b>搜索结束</b>"

set objtextstream = nothing
set objfolder = nothing
set objfso = nothing
%>
</body></html>

赞(0)
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com 特别注意:本站所有转载文章言论不代表本站观点! 本站所提供的图片等素材,版权归原作者所有,如需使用,请与原作者联系。未经允许不得转载:IDC资讯中心 » 用ASP做一个TOP COOL的站内搜索。
分享到: 更多 (0)