本文主要介绍的是php实现多关键字加亮功能,可以实现在搜索的时候进行高亮提醒,具体实现代码如下:
项目结构:
搜索结果: 高亮显示
项目所需数据库结构:
实现代码:
conn.php
1
2
3
4
5
|
<?php $conn = @ mysql_connect( "localhost" , "root" , "" ) or die ( "数据库链接错误" ); mysql_select_db( "form" , $conn ); mysql_query( "set names 'gbk'" ); ?> |
searchanddisplaywithcolor.php
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
|
<?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> |
说明:在这个小程序中,有一点不足之处在于,只能同时搜索两个关键字,并且中间用空格" "隔开,如果只是搜索一个关键字,如:"大"
显示的时候会出现乱码 ……^|_|^,这是由于下面代码的结果:
1
2
|
//用空格符把关键字分割开 $key = explode ( ' ' , $_get [keyword]); |
希望本文所述对你有所帮助,php实现多关键字加亮功能内容就给大家介绍到这里了。希望大家继续关注我们的网站!想要学习php可以继续关注本站。