php实现搜索多关键词高亮显示程序代码
发布:smiling 来源: PHP粉丝网 添加日期:2013-12-31 16:45:38 浏览: 评论:0
关键词高亮在php中实现相对很简单,他只需要获取利用提取过来的关键词进行分词然后再利用str_replace()函数来实现替换就可以原理相对很简单。
数据库连接文件,代码如下:
- <?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> | <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分词系统进行分词再操作会好很多哦。
Tags: php搜索 关键词 高亮显示
相关文章
- ·php搜索csv表格中是否存在指定数据(2014-09-11)
- ·使用php记录用户通过搜索引擎进网站的关键词(2020-09-14)
- ·php实现判断访问来路是否为搜索引擎机器人的方法(2021-05-22)
- ·PHP判断来访是搜索引擎蜘蛛还是普通用户的代码小结(2021-06-18)
- ·PHP实现搜索地理位置及计算两点地理位置间距离的实例(2021-07-04)
- ·PHP实现搜索时记住状态的方法示例(2021-09-17)
- ·获取关键词及所属来源搜索引擎名称(2014-08-05)
- ·php站内搜索关键词变亮的实现方法(2021-05-05)
- ·php给一组指定关键词添加span标签的方法(2021-05-19)
- ·浅析PHP关键词替换的类(避免重复替换,保留与还原原始链接)(2021-06-18)
推荐文章
热门文章
最新评论文章
- 写给考虑创业的年轻程序员(10)
- PHP新手上路(一)(7)
- 惹恼程序员的十件事(5)
- PHP邮件发送例子,已测试成功(5)
- 致初学者:PHP比ASP优秀的七个理由(4)
- PHP会被淘汰吗?(4)
- PHP新手上路(四)(4)
- 如何去学习PHP?(2)
- 简单入门级php分页代码(2)
- php中邮箱email 电话等格式的验证(2)