php实现搜索多关键词高亮显示程序代码

项目结构:

开始搜索:   这里搜索关键字("大""这")

开始搜索:   这里搜索关键字("大""这")

搜索结果:  高亮显示

项目所需数据库结构:

数据库连接文件

 代码如下 复制代码
<?php
$conn = @ mysql_connect("localhost", "root", "") or die("数据库链接错误");
mysql_select_db("form", $conn);
mysql_query("set names 'gbk'");
?>

给加色的searchAndDisplayWithColor.php文件

 代码如下 复制代码

<?php
 include 'conn.php';
 ?>
 
 <table width=500 align="center">
     <form action="" method="get">
     <tr>
         <td>关键字:<input type="text" name="keyWord" />
         <input type="submit" value="搜索" /></td>
     </tr>
     </form>
 </table>
 
 <table width=500 border="0" align="center" cellpadding="5"
     cellspacing="1" bgcolor="#add3ef">
     <?php
     //关键字不为空的时候才执行相关搜索
     if($_GET['keyWord']){
     //用空格符把关键字分割开
     $key=explode(' ', $_GET[keyWord]);
     $sql="select * from message where title like '$key[0]' or title like '$key[1]' or content like '$key[0]' or content like '%$key[1]%'";
     $query=mysql_query($sql);
     while ($row=mysql_fetch_array($query)){
         //替换关键字,并且把关键字高亮显示
         $row[title]=preg_replace("/$key[0]/i", "<font color=red><b>$key[0]</b></font>", $row[title]);
         $row[title]=preg_replace("/$key[0]/i", "<font color=red><b>$key[1]</b></font>", $row[title]);
         $row[content]=preg_replace("/$key[0]/i", "<font color=red><b>$key[0]</b></font>", $row[content]);
         $row[content]=preg_replace("/$key[1]/i", "<font color=red><b>$key[1]</b></font>", $row[content]);
         ?>
 
     <tr bgcolor="#eff3ff">
         <td>标题:<font color="black"><?=$row[title]?></font> 用户:<font color="black"><?=$row[user] ?></font>
         <div align="right"><a href="preEdit.php?id=<?=$row[id]?>">编辑</a>&nbsp;&nbsp;|&nbsp;&nbsp;<a
             href="delete.php?id=<?=$row[id]?>">删除</a></div>
         </td>
     </tr>
     <tr bgColor="#ffffff">
         <td>内容:<?=$row[content]?></td>
     </tr>
     <tr bgColor="#ffffff">
         <td>
         <div align="right">发表日期:<?=$row[lastdate]?></div>
         </td>
     </tr>
     <?php }
     }
     ?>
 </table>

说明:在这个小程序中,有一点不足之处在于,只能同时搜索两个关键字,并且中间用空格" "隔开,如果只是搜索一个关键字,如:"大"
显示的时候会出现乱码 ……^|_|^,这是由于下面代码的结果:

用空格符把关键字分割开

 代码如下 复制代码
$key=explode(' ', $_GET[keyWord]);

如果要改进的话,在这里的后面就要做一下判断了。

总结,

上面的关键词高亮只是一个非常简单的用户提交过来什么我们就对这个关键词进行了str_replace进行高亮显示了,如果要做得更好可利用dedecms分词系统进行分词再操作会好很多哦。

关于dedecms分词程序实现方法可参考

一个用PHP写的中文分词函数

http://www.111cn.net/phper/24/c8b9ff7300e56c042014a655b0bd6e34.htm

中文分词的php代码

http://www.111cn.net/phper/php-gj/39302.htm

php做的简单中文分词代码

http://www.111cn.net/phper/php-gj/38506.htm

时间: 2024-09-11 08:40:57

php实现搜索多关键词高亮显示程序代码的相关文章

javascript实现搜索引擎关键词高亮显示实现代码

原理: 在页面加载完成时获取页面来源(document.referrer),并分析搜索引擎关键词,然后获取页面上所有元素,递归查询是否含有搜索关键字,如果有,就创建一个 span 元素,并应用关键词样式,替换原有节点    代码如下 复制代码 <script type="text/javascript"> <!-- // 说明:获取搜索引擎关键字并高亮显示 // 整理:http://www.111cn.net   function highlightWord(node

用JS将搜索的关键字高亮显示实现代码_javascript技巧

用JS让文章内容指定的关键字加亮 是这样的.. 现在有这些关键字:美容,生活,购物当在文章里头出现这些关键字,就把它加亮显示.. 文章是生成静态页面的,而这些关键字是能随时更新的,所以我想用JS来实现...不知道怎样来实现这样的功能啊?特此求助 复制代码 代码如下: <script language="JavaScript">function highlight(key) { var key = key.split('|'); for (var i=0; i<key.

javascript实现页面内关键词高亮显示代码

 关键词高亮想必大家对它都不陌生吧,应用也比较广泛的,下面为大家介绍下通过javascript是如何实现页面内关键词高亮显示 代码如下: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">  <html xmlns="http://www.w3.or

php获取从百度搜索进入网站的关键词的详细代码_php技巧

分享一个php获取从百度搜索进入网站的关键词的代码,有需要的朋友可以参考一下: 代码: 复制代码 代码如下: <?php function search_word_from() { $referer = isset($_SERVER['HTTP_REFERER'])?$_SERVER['HTTP_REFERER']:''; if(strstr( $referer, 'baidu.com')){ //百度 preg_match( "|baidu.+wo?r?d=([^\\&]*)|i

asp获取搜索蜘蛛程序代码

asp获取搜索蜘蛛程序代码 Function GetSearcher(ByVal strUrl)  On Error Resume Next  If Len(strUrl) < 5 Then   GetSearcher = "DirectInput"   Exit Function  End If  If strUrl = ''Or InStr(strUrl, ":") = 0 Then   GetSearcher = "DirectInput&qu

ASP实例:处理多关键词查询实例代码

在web开发中经常遇到多关键词对对单个字段查询,我一般是通过动态数组来实现的.当然多个关键词的一般是用空格或,隔开,我这几假设多个关键词用空格隔开,关键字字符串为keyStr,具体代码为. 程序代码: 以下为引用的内容: '关键字的搜索str="select * from tableName where id>4"if srhKey<>"" thenkeyArr=split(srhKey," ")j=UBound(keyArr)

处理多关键词查询实例代码

在web开发中经常遇到多关键词对对单个字段查询,我一般是通过动态数组来实现的.当然多个关键词的一般是用空格或,隔开,我这几假设多个关键词用空格隔开,关键字字符串为keyStr,具体代码为. 程序代码: 以下为引用的内容: '关键字的搜索str="select * from tableName where id>4"if srhKey<>"" thenkeyArr=split(srhKey," ")j=UBound(keyArr)

ASP处理多关键词查询实例代码

在web开发中经常遇到多关键词对对单个字段查询,我一般是通过动态数组来实现的.当然多个关键词的一般是用空格或,隔开,我这几假设多个关键词用空格隔开,关键字字符串为keyStr,具体代码为. 程序代码: 以下为引用的内容: '关键字的搜索 str="select * from tableName where id>4" if srhKey<>"" then keyArr=split(srhKey," ") j=UBound(key

jquery实现页面关键词高亮显示的方法

 这篇文章主要介绍了jquery实现页面关键词高亮显示的方法,实例分析了jQuery插件highlight实现高亮显示的技巧,非常具有实用价值,需要的朋友可以参考下     本文实例讲述了jquery实现页面关键词高亮显示的方法.分享给大家供大家参考.具体分析如下: 通过jquery对页面搜索关键词进行高亮显示 支持中文多词页面中高亮显示 1. JavaScript代码如下: 代码如下: jQuery.fn.extend({ highlight: function(search, configs