php站内搜索并高亮显示关键字的实现代码


Posted in PHP onDecember 29, 2011
<?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的值开头的信息
通过正则函数preg_replace()将搜索到的关键字高亮显示,比如,

  $row['name']=preg_replace("/($info)/i","<b style=\"color:red\">\\1</b>",$row['name']);

  的意思是:通过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); 
} 
} 
?>

原创文章:WEB开发_小飞
PHP 相关文章推荐
在PHP3中实现SESSION的功能(一)
Oct 09 PHP
PHP测试程序运行时间的类
Feb 05 PHP
php生成缩略图填充白边(等比缩略图方案)
Dec 25 PHP
仿dedecms下拉分页样式修改的thinkphp分页类实例
Oct 30 PHP
PHP实现股票趋势图和柱形图
Feb 07 PHP
PHP解析RSS的方法
Mar 05 PHP
wamp服务器访问php非常缓慢的解决过程
Jul 01 PHP
php使用timthumb生成缩略图的方法
Jan 22 PHP
PHP实现通过strace定位故障原因的方法
Apr 29 PHP
Laravel如何创建服务器提供者实例代码
Apr 15 PHP
Laravel创建数据库表结构的例子
Oct 09 PHP
laravel框架使用FormRequest进行表单验证,验证异常返回JSON操作示例
Feb 18 PHP
PHP数组 为文章加关键字连接 文章内容自动加链接
Dec 29 #PHP
PHP防CC攻击实现代码
Dec 29 #PHP
php curl常见错误:SSL错误、bool(false)
Dec 28 #PHP
PHP+Ajax异步通讯实现用户名邮箱验证是否已注册( 2种方法实现)
Dec 28 #PHP
shopex主机报错误请求解决方案(No such file or directory)
Dec 27 #PHP
PHP写UltraEdit插件脚本实现方法
Dec 26 #PHP
url decode problem 解决方法
Dec 26 #PHP
You might like
php中使用cookie来保存用户登录信息的实现代码
2012/03/08 PHP
PHP四舍五入、取整、round函数使用示例
2015/02/06 PHP
根据分辩率调用不同的CSS.
2007/01/08 Javascript
JavaScript入门之对象与JSON详解
2011/10/21 Javascript
JS操作Cookies包括(读取添加与删除)
2012/12/26 Javascript
jquery入门—选择器实现隔行变色实例代码
2013/01/04 Javascript
js调用打印机打印网页字体总是缩小一号的解决方法
2014/01/24 Javascript
javascript同步服务器时间和同步倒计时小技巧
2015/09/24 Javascript
纯js实现html转pdf的简单实例(推荐)
2017/02/16 Javascript
vue中axios处理http发送请求的示例(Post和get)
2017/10/13 Javascript
关于js对textarea换行符的处理方法浅析
2018/08/03 Javascript
关于layui 下拉列表的change事件详解
2019/09/20 Javascript
Vue退出登录时清空缓存的实现
2019/11/12 Javascript
[02:36]DOTA2亚洲邀请赛小组赛精彩集锦:EE凭借法力虚空拿下4杀
2017/03/30 DOTA
[36:33]完美世界DOTA2联赛循环赛 Matador vs Forest 第一场 11.06
2020/11/06 DOTA
使用Python的内建模块collections的教程
2015/04/28 Python
selenium2.0中常用的python函数汇总
2019/08/05 Python
python爬虫 猫眼电影和电影天堂数据csv和mysql存储过程解析
2019/09/05 Python
使用Python实现 学生学籍管理系统
2019/11/26 Python
Pytorch中的自动求梯度机制和Variable类实例
2020/02/29 Python
Python 实现自动登录+点击+滑动验证功能
2020/06/10 Python
keras绘制acc和loss曲线图实例
2020/06/15 Python
python实现猜数游戏(保存游戏记录)
2020/06/22 Python
Django基于Models定制Admin后台实现过程解析
2020/11/11 Python
HTML5 video 视频标签使用介绍
2014/02/03 HTML / CSS
阿迪达斯丹麦官网:adidas丹麦
2016/10/01 全球购物
Martinelli官方商店:西班牙皮鞋和高跟鞋品牌
2019/07/30 全球购物
adidas爱尔兰官方网站:阿迪达斯运动鞋和运动服
2019/11/01 全球购物
毕业生的自我评价范文
2013/12/31 职场文书
我心目中的好老师活动方案
2014/08/19 职场文书
邓小平理论心得体会
2014/09/09 职场文书
廉洁自律个人总结
2015/02/14 职场文书
2015年数学教研组工作总结
2015/05/23 职场文书
入党培养人考察意见
2015/06/08 职场文书
2015中学教师个人工作总结
2015/07/22 职场文书
MySQL中utf8mb4排序规则示例
2021/08/02 MySQL