我们在实际的编码中,可以利用PHP提供的应用程序来实现我们的站内搜索引擎的搭建。下面我们将会把具体的实现代码贴上。我们可以将PHP实现站内搜索引擎做的稍微复杂一些:使用一个页面既输出一个表单供用户输入搜索字串又输出查询结果。

以下就是PHP实现站内搜索引擎的具体代码:

  1. <?
  2. include("include/common.inc");
  3. $title = "Search";
  4. include("include/header.inc");
  5. ?>
  6. <P>
  7. <FORM ACTION="<? echo "$PHP_SELF"; ?>" METHOD="POST">
  8. <INPUT TYPE="text" NAME="searchstr" value="<? echo "$searchstr"; ?>"
  9. SIZE="20" MAXLENGTH="30">
  10. <INPUT TYPE="submit" VALUE="Search!">
  11. </FORM>
  12. </P>
  13. <?
  14. if ( ! empty($searchstr) )
  15. {
  16. // empty()用来检查查询字串是否为空
  17. // 如果不为空,调用grep查询
  18. echo "<HR>\n";
  19. // 调用grep对所有文件进行大小写非敏感模式的查询
  20. $cmdstr = "grep -i $searchstr *";
  21. $fp = popen( $cmdstr, "r" ); // 执行命令并输出管道
  22. $myresult = array(); // 存储查询结果
  23. while( $buffer = fgetss ($fp, 4096))
  24. {
  25. // grep返回这样格式: 文件名:匹配字串出现行数
  26. // 因此我们利用函数split()分离处理数据
  27. list($fname, $fline) = split(":",$buffer, 2);
  28. // 我们只输出第一次匹配的结果
  29. if ( !defined($myresult[$fname]))
  30. $myresult[$fname] = $fline;
  31. }
  32. // 现在我们将结果存储在数组中,下面就可以处理并输出了
  33. if ( count($myresult) )
  34. {
  35. echo "<OL>\n";
  36. while(list($fname,$fline) = each($myresult))
  37. echo "<LI>
  38. <A HREF=\"$fname\">$fname</A> : $fline </LI>\n";
  39. echo "</OL>\n";
  40. }
  41. else
  42. {
  43. // 如果没有查询结果
  44. echo "Sorry. Search on <B>$searchstr</B>
  45. returned no results.<BR>\n";
  46. }
  47. pclose($fp);
  48. }
  49. ?>
  50. <?
  51. include("include/footer.inc");
  52. ?>

怎么样,通过对上面这段代码的理解,新手们是否已经掌握了PHP实现站内搜索引擎的具体方法呢?

探讨PHP实现站内搜索引擎的具体方法相关推荐

  1. 站内搜索引擎初探:haystack全文检索,whoosh搜索引擎,jieba中文分词

    在做django项目当中,不免要使用到站内搜索引擎,网站呈现的内容除了列表,详细页,首页之外,用户也需要通过搜索引擎来找到自己需要的内容. 安装: pip install django-haystac ...

  2. 加入一个基于GOOGLE的站内搜索引擎

    由于这一次的客户只能提供虚拟主机作为项目运行平台,无法搭配中文分词组件,原来自行开发的站内搜索引擎无法发挥最大的功效(主要是不能自动分析关键词,只能通过指定相关索引字段,以及手工输入TAG的机制来生成 ...

  3. 站内搜索引擎之比较〔转〕

    有很多网站都在网页上加个"站内搜索引擎"."搜索引擎"."全文检索"等等相关字样. 用户一用,结果发现,既不能多关键组合查询,也不能支持国际 ...

  4. 王通:站内搜索引擎的SEO策略

    越来越多的大中型网站都有了站内搜索引擎,站内搜索引擎如果采用正确的SEO策略,可以产生大量非常合理的关键词页面,可以在各大搜索引擎中带来巨大的流量.站内搜索引擎该如何SEO呢?很简单,只需要做好以下三 ...

  5. 用C++来设计开发的基于boost文档的站内搜索引擎项目,点赞收藏起来!

    So Easy搜索引擎 项目描述 主要技术 项目特点 0. 准备工作 1. 预处理模块 2. 索引模块 3. 搜索模块 4. 服务器模块 项目难点和提升 结束语 项目描述 boost官网虽然提供了在线 ...

  6. 【项目】 基于BOOST的站内搜索引擎

    目录 1. 简介 建立搜索引擎的宏观体系 技术栈和项目环境 正排索引 and 倒排索引 2. 数据去标签与数据清洗模块 -- Parser 数据去标签 parser.cc parser.cc 的代码结 ...

  7. 如何搭建一个站内搜索引擎(一) 第1章 写在最前

    搜索引擎,对很多人来说,熟悉又陌生.熟悉,是因为每个人每天都能接触到,比如百度.google.淘宝内部搜索:陌生,是因为鲜有人了解他的原理. 因为工作需要,有幸参与负责了一个站内搜索的项目.所以可以从 ...

  8. 基于swiftype应用于Hexo-Yilia-主题的站内搜索引擎

    本文基于Hexo,Yilia主题添加站内搜索功能与使用swiftype实现站内搜索 文章之前首先感谢以上两位作者YeHbeats与 huangjunhui swiftype Swiftype 可以为网 ...

  9. 使用 LayUI+SpringBoot+Solr 模仿百度、做站内搜索引擎

    一.前言 全文检索于 sql 模糊查询,最大的区别,在于 ① 前者能将要查询的关键字符串先进行灵活分词,再进行匹配, ② 后者只会直接死板匹配. ③ 很多网站都有站内搜索,每个后台的应该会,故做了个 ...

  10. 百度 和 谷歌 的站内搜索引擎代码

    网上曾有过两段Google和百度站内搜索的代码,如下(注意:代码中的"网站地址"要去掉http://) <!--Google站内搜索开始--> <form met ...

最新文章

  1. Redis cluster日常管理【二】
  2. 2020 6-7月 每日花语
  3. 【渝粤题库】陕西师范大学292969 会计学 作业 (专升本、高起本)
  4. 关于 VB,VC,Delphi,SDK 的笑话
  5. 福师《计算机应用基础》期末考试a卷数据是,2020年春福师《计算机应用基础》期末考试A卷附答案...
  6. Web前端开发解耦1
  7. Flutter进阶第13篇: 打开外部浏览器、打开外部应用、拨打电话、发送短信
  8. inventor牙距_10 INVENTOR螺纹特征,是否有何设置,可让螺纹类型默认为GB Metric
  9. 软件需求分析——UML用例图
  10. C++ stl库 手写 源码分析
  11. 兼具教育耐心和AI匠心,看「网易有道词典笔2.0」的变革者角色
  12. RT-Thread : STM32 系列外设驱动添加指南
  13. 计算机DSU,研科d5000dsu驱动
  14. BZOJ 3505: [Cqoi2014]数三角形 数学
  15. Nginx编译时error: assignment makes pointer from integer without a cast处理
  16. easyui教程 php,Easyui 创建子网格_EasyUI 教程
  17. 英特尔实感3D摄像头
  18. 老司机教你怎样下载电影
  19. 三本毕业后,选择了大数据开发职业
  20. python传递指针_python值传递和指针传递

热门文章

  1. 计算机与单片机串口程序,51单片机与电脑串口通信,并用数码管显示的两种方法...
  2. 开发一个 app 有多难?
  3. 鸿蒙系统反应慢,系统优化非常的关键 鸿蒙2.0和iOS14的反应速度测试
  4. 系统优化的基本思想点
  5. 灵长类动物手臂的计算模型:从手部位置到关节角度、关节扭矩和肌肉力
  6. Bugzilla的快速入门指南(全网最详细)
  7. ESP32学习实例(四),WIFI模块的初步学习和遇到的问题,以及解决方法
  8. firefox百度贴吧发不出表情的解决办法
  9. 交换机的Vlan技术 以及Vlan隔离和 端口隔离区别
  10. 一些用的上的在线网站