logo 广告
Loading...
 导航 所在位置:论坛首页 -> ┈┋电脑网络┋┈ -> 搜索引擎优化 -> 为你的网站添加搜索引擎
回复

为你的网站添加搜索引擎

作者:薰衣草 时间:2008-4-8 10:48:28 收藏 编辑

下面,我将向你讲解如何在一个不大的网站中,使用File System Object对象来实现一个简单的搜索引擎。其实实现的原理很简单,通过文件系统对象,我们可以读出任何的权限范围内的文文的内容,把这些内容放到一个暂存变量中,通过和带搜索字符串的比较,来确定相应的文件是否是所需要的文件。其实呢,关于字符子串匹配的算法有很多,效率也很不一样,一个好的模式匹配算法实现起来很是有一些难度的。好在在VBScript中内置的字符子串的匹配函数InStr(),这样,最后的难点也告解决,程序实现起来就很容易了。

   在运行这个例程前,还需要注意的是: 

   1,目录search位于“c:inetpubwwwroot”下。

   2,所有需要检索的文件都在目录search下。

   3,在search的任何子目录中的文件将被忽略不予理睬。

   Ok,下面我们就来看看具体的程序实现。

   <%

   Dim objFolder

   Dim search_str

   Dim fso

   dim boolFileFound

   boolFileFound = "false"

   '为了使程序主题更为明确,在这儿假设要搜索的字符串为"test",并把它赋值给一个字符串变量。当然在真正的实现的时候,应该用一个表单来获取用户的输入。

   search_str = "test"

   'Search函数以文件系统对象中的文件夹子对像为参数,在这儿并没有实现对多层目录的检索,'其实要实现的话也不是很难,仅仅只是需要对这个文件夹对象的下层文件夹子对象进行嵌套调用就行了。

   Function Search(objFolder)

   Dim objSubFolder

   '在当前目录的每个文件中进行循环搜索

   For Each objFile in objFolder.Files

   Set TextStreamobj = fso.OpenTextFile(objFile.Path,1)

   '把文件的内容读入到一个字符变量中 

   strFileContents = TextStreamobj.ReadAll

   '如果搜索引擎在上面的那个字符串中找到了待搜索的关键字,就为相应的文件建立一个超链接 '并在搜索页中把这个超链接显示出来,其中应用的一个关键是使用VBScript中的一个名为'InStr函数,它用来判断一个字符串是否包含有指定的字符串

   file_path = "search" & "" & objfile.name

   If InStr(1, strFileContents, search_str, 1) then

   Response.Write " 

   """>" & objFile.Name & "


   boolFileFound = "True"

   End If

   TextStreamobj.Close

   Next

   End Function

   '建立文件系统对象和文件夹子对像

   Set fso = Server.CreateObject("Scripting.FileSystemObject")

   Set objFolder = fso.GetFolder(Server.MapPath("/search"))

   Search objFolder

   if bolFileFound = "false" then

   Response.write "对不起,你所需要查找的文件没有找到。"

   end if

   %>

   为了叙述的方便,在这篇文章中,假设所有要被搜索的文件都被存放在一个名为search的目录下,并且它的虚拟目录名也是search,而且没有子目录。我想这样的一个小程序段已经是能足够说明这个方法的实现机理了,通过简单的改造,就可以应用在多目录,多层次的文件系统中。相信你一定可以做出来的。怎么样,快快动手,给你的网站添加更多的魅力吧。


·热门回顾

·最新帖子
第1页 共页 共0个回复     <<    >>    
快速回复
  • 支持UBB,HTML标签

  • 高级回复

  • 操作选项:评分 加精 解精 奖惩 设专题 设公告 解公告 固顶 总固顶 解固顶 结帖 解结帖 锁帖 解锁 移帖 删帖
      首页 | 购买指南 | 虚拟主机 | 特色介绍 | 下载中心 | 支付方式
    Copyright 2004-2008 BBSGood.com Powered By: BBSGood.Speed Version 5.0
      咨询电话:0575-85513832、0575-85513825(传真)、7*24小时咨询服务:13606552007 不良信息举报中心 浙ICP备05029817号
      业务QQ:38958768、客服QQ1:415896239、客服QQ2:343896043、MSN:jccsxx@hotmail.com