PHP如何实现关键字搜索后描红功能

作者 : 慕源网 本文共1333个字,预计阅读时间需要4分钟 发布时间: 2021-09-20 共361人阅读

在刚开始学习php的时候,就对搜索过后的关键字描红感到好奇,但是这几天在巩固php基础的时候,就发现原来这样的效果实现并不难。按照惯例,首先给大家看看效果图吧。

 

运行效果图

PHP如何实现关键字搜索后描红功能

  数据库相关

 

数据库名是book,只有一个数据库表,也是book,模拟了5条数据。

 

name字段是书名,description字段是书的描述

PHP如何实现关键字搜索后描红功能

  代码

 

<!DOCTYPE html>

 

<html>

 

<head>

 

<meta charset=”utf-8″>

 

<meta http-equiv=”X-UA-Compatible” content=”IE=edge”>

 

<title></title>

 

<link rel=”stylesheet” href=””>

 

</head>

 

<body>

 

<form action=”14.php” method=”post”>

 

请输入关键字:<input type=”text” name=”keyword”>

 

<input type=”submit” value=”提交” />

 

</form>

 

<?php

 

if(!empty($_POST[‘keyword’])){

 

$keyword = $_POST[‘keyword’];//获取输入的关键字

 

//进行数据库连接

 

$conn = mysql_connect(“localhost”,”root”,”123456″);

 

if(!$conn){

 

die(“数据库连接失败”);

 

}

 

$flag = mysql_select_db(“book”,$conn);

 

if(!$flag){

 

die(“数据库打开失败”);

 

}

 

mysql_query(“set names utf8”);

 

$sql = “select * from book where name like ‘%$keyword%’ or description like ‘%$keyword%'”;

 

$result = mysql_query($sql,$conn);

 

while($row = mysql_fetch_assoc($result)){

 

?>

 

<div style=”width:300px;height:100px;background-color: #ccc;margin-bottom: 10px”>

 

<p>书名:<?php echo str_ireplace($keyword, “<font color=’#f00’>$keyword</font>”,$row[‘name’])?></p>

 

<p>描述:<?php echo str_ireplace($keyword, “<font color=’#f00′>$keyword</font>”,$row[‘description’])?></p>

 

</div>

 

<?php

 

}

 

}else{

 

echo “很遗憾,没有找到书籍”;

 

}

 

?>

 

</body>

 

</html>

 

最后说一下实现的原理,首先先获取从文本框输入的关键字文字,然后就是连接数据库进行查询,将书名中或者描述中包含关键字文字的记录查询出来,把查询到的结果循环显示出来,在显示书名和描述的时候,用str_ireplace()函数将其中的关键字文字替换成带有红色的文字,就实现了关键字描红的效果。

 


慕源网 » PHP如何实现关键字搜索后描红功能

常见问题FAQ

程序仅供学习研究,请勿用于非法用途,不得违反国家法律,否则后果自负,一切法律责任与本站无关。
请仔细阅读以上条款再购买,拍下即代表同意条款并遵守约定,谢谢大家支持理解!

发表评论

开通VIP 享更多特权,建议使用QQ登录