本文主要介绍的是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可以继续关注本站。