php 关键词搜索结果高亮
一、SQL语句中的模糊查找
主要通过LIKE(不区分大小写)关键字实现模糊查找。LIKE条件一般用在指定搜索某字段的时候, 通过"%"或者" _" 通配符的作用实现模糊查找功能,通配符可以在字段前面也可以在后面或前后都有。只通过LIKE是无法实现模糊查找的,因此通配符的作用不可忽略。
下面是三个实例:
搜索以PHP开头:
SELECT * FROM table WHERE title LIKE 'PHP%'
搜索以PHP结束:
SELECT * FROM table WHERE title LIKE '%PHP'
搜索包含PHP100:
SELECT * FROM table WHERE title LIKE '%PHP%'
注:%表示0个或多个字符构成的字符串,_表示单个字符,类似于正则表达式中元字符的作用
在LIKE后面可以增加其他条件,类似于if语句
例子的数据库中的内容
$conn = @mysql_connect("localhost", "root", "") or die("数据库链接错误");
mysql_select_db("bbs", $conn);
mysql_query("set names 'utf-8'"); //使用utf8中文编码;
if($_GET['key']) {
$sql = "SELECT * FROM `text` WHERE content LIKE '%$_GET[key]%'";
$query = mysql_query($sql);
while($r=mysql_fetch_array($query)) {
echo "$r[content]"."
";
}
}
?>
二、多个关键字搜索的原理和技巧
单个关键字搜索的步骤:提交表单->PHP文件接收关键字->执行SQL->输出结果
如果是多关键字的时候:在提交表单的时候将多个关键字用空格或+号分隔开,然后PHP文件接收到所提交的字符串后,通过一些函数如:explore函数将字符串拆分成多个关键字存放在数组中;然后就可以在数据库中通过多个LIKE模糊查找得到所要查找的内容。
三、替换关键字高亮显示
通过模糊查找得到所要的内容后,使用正则表达式替换所要查找的内容,可以通过改变颜色,加粗等改变显示的效果。
$conn = @mysql_connect("localhost", "root", "") or die("数据库链接错误");
mysql_select_db("bbs", $conn);
mysql_query("set names 'utf-8'"); //使用utf8中文编码;
if($_GET['key']) {
$k = explode(" ", $_GET[key]);
$sql = "SELECT * FROM `text` WHERE content LIKE '%$k[0]%' or content LIKE '%$k[1]%'";
$query = mysql_query($sql);
while($r=mysql_fetch_array($query)) {
$r[content] = preg_replace("/($k[0])/i", "\\1", $r[content]);
$r[content] = preg_replace("/($k[1])/i", "\\1", $r[content]);
echo "$r[content]"."
";
}
}
?>
本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!
