本文章介绍一篇较实用的文章关于php做站内搜索并高亮显示关键字,这个很多朋友直接利用preg_replace来操作,这是正确的哦,不过我觉得用str_replace更快一些哦,至于原因自己查查这两个函数的区别吧。
如何使用php做站内搜索并高亮显示关键字?代码如下:
<?php
require_once 'sqlTools.class.php'; //封装类,可执行dql、dml语句
$info = $_POST['info'];
$sql = "select name,password,email from user_500 where name like '%$info%' or password like '%$info%' or email like '%$info%'";
$sqlTools = new SqlTools();
$res = $sqlTools->execute_dql($sql);
while ($row = mysql_fetch_assoc($res)) {
$row['name'] = preg_replace("/($info)/i", "<b style=\"color:red\">1</b>", $row['name']);
$row['password'] = preg_replace("/($info)/i", "<b style=\"color:red\">1</b>", $row['password']);
$row['email'] = preg_replace("/($info)/i", "<b style=\"color:red\">1</b>", $row['email']);
echo $row['name'] . "-->" . $row['password'] . "-->" . $row['email'] . "<br>";
}
?>思路分析:将sql语句中包含的%$info%交给DBMS执行的时候,他会查找字段中含有变量$info的值的信息,
%$info--->查找以$info的值结束的信息
$info%--->查找以$info的值开头的信息
立即学习“PHP免费学习笔记(深入)”;
通过正则函数preg_replace()将搜索到的关键字高亮显示,比如:
$row['name']=preg_replace("/($info)/i","1",$row['name']);
主要模块:首页商品推荐 /顾客留言发布 /商品分类浏览 /按商品分类、关键字搜索商品 /商品购物车 人信息中心 /显示商品详细介绍以及多图片显示功能 /商品类别管理有分大类中类的类别设定商品搜索类别设定 /商品管理有临时关闭不在线功能 /订单管理 /支付类型管理模块 留言管理 /后台权限分级管理 /密码修改 /新闻管理 /网站配置管理 /滚动广告管理v1.58更新:1、增强支付接口设置。2、内置支
0
的意思是:通过POST方接收到的值$info替换为加上样式(红色加粗)的结果,并将结果重新赋给$row[‘name’]
如果要搜索多个关键字的话,可以对接收到值$info进行分割,比如$info_more=explode(" ",$info);//这种方式能对以空格隔开的关键字进行分割,再对分割后的结果挨个进行查询,同样,可以使用正则表达式函数进行替换工作,以高亮显示关键字,代码如下:
sqlTools.class.php的源代码:
<?php
class SqlTools {
private $host = "localhost";
private $dbname = "test";
private $dbuser = "root";
private $dbpwd = "";
private $conn;
public function __construct() {
$this->conn = mysql_connect($this->host, $this->dbuser, $this->dbpwd);
if (!$this->conn) {
die("连接数据库失败" . mysql_error());
}
mysql_select_db($this->dbname, $this->conn) or die("找不到该数据库" . mysql_error());
mysql_query("set names utf8");
}
public function execute_dml($sql) {
$bool = mysql_query($sql);
if ($bool) {
if ($bool > 0) {
return 1;
} else {
return 2;
}
} else {
return 0;
}
}
public function execute_dql($sql) {
$res = mysql_query($sql);
return $res;
}
public function close_conn() {
mysql_close($this->conn);
}
}
?>
本文链接:
收藏随意^^请保留教程地址.
PHP怎么学习?PHP怎么入门?PHP在哪学?PHP怎么学才快?不用担心,这里为大家提供了PHP速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号