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 相关文章推荐
将文件夹压缩成zip文件的php代码
Dec 14 PHP
PHP中的string类型使用说明
Jul 27 PHP
php读取flash文件高宽帧数背景颜色的方法
Jan 06 PHP
PHP使用PDO连接ACCESS数据库
Mar 05 PHP
Laravel与CI框架中截取字符串函数
May 08 PHP
php UNIX时间戳用法详解
Feb 16 PHP
PHP实现自动发送邮件功能代码(qq 邮箱)
Aug 18 PHP
php制作圆形用户头像的实例_自定义封装类源代码
Sep 18 PHP
PHP多维数组排序array详解
Nov 21 PHP
thinkPHP+mysql+ajax实现的仿百度一下即时搜索效果详解
Jul 15 PHP
php使用pthreads v3多线程实现抓取新浪新闻信息操作示例
Feb 21 PHP
php使用fputcsv实现大数据的导出操作详解
Feb 27 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动态生成VRML网页
2006/10/09 PHP
div li的多行多列 无刷新分页示例代码
2013/10/16 PHP
一个完整的php文件上传类实例讲解
2015/10/27 PHP
PHP自动补全表单的两种方法
2017/03/06 PHP
php实现每日签到功能
2018/11/29 PHP
phpinfo无法显示的原因及解决办法
2019/02/15 PHP
怎么用javascript进行拖拽
2006/07/20 Javascript
javascript showModalDialog 多层模态窗口实现页面提交及刷新的代码
2009/11/28 Javascript
JQuery 构建客户/服务分离的链接模型中Table中的排序分析
2010/01/22 Javascript
javascript定时变换图片实例代码
2013/03/17 Javascript
JavaScript中为什么null==0为false而null大于=0为true(个人研究)
2013/09/16 Javascript
jQuery学习之prop和attr的区别示例介绍
2013/11/15 Javascript
Jquery 动态循环输出表格具体方法
2013/11/23 Javascript
JS图片无缝、平滑滚动代码
2014/03/11 Javascript
jQuery 1.9使用$.support替代$.browser的使用方法
2014/05/27 Javascript
JavaScript实现自动弹出窗口并自动关闭窗口的方法
2015/08/06 Javascript
jquery性能优化高级技巧
2015/08/24 Javascript
JavaScript将DOM事件处理程序封装为event.js 出现的低级错误问题
2016/08/03 Javascript
常用Javascript函数与原型功能收藏(必看篇)
2016/10/09 Javascript
JS判断输入的字符串是否是数字的方法(正则表达式)
2016/11/29 Javascript
原生js实现验证码功能
2017/03/16 Javascript
动态Axios的配置步骤详解
2018/01/12 Javascript
vue踩坑记-在项目中安装依赖模块npm install报错
2019/04/02 Javascript
JavaScript实现的弹出遮罩层特效经典示例【基于jQuery】
2019/07/10 jQuery
vue.js实现h5机器人聊天(测试版)
2020/07/16 Javascript
TypeScript 运行时类型检查补充工具
2020/09/28 Javascript
一起来了解一下JavaScript的预编译(小结)
2021/03/01 Javascript
Python入门篇之条件、循环
2014/10/17 Python
Python自动化运维和部署项目工具Fabric使用实例
2016/09/18 Python
python中类变量与成员变量的使用注意点总结
2017/04/29 Python
解决seaborn在pycharm中绘图不出图的问题
2018/05/24 Python
TFRecord格式存储数据与队列读取实例
2020/01/21 Python
python数据预处理 :数据抽样解析
2020/02/24 Python
德国网上超市:myTime.de
2019/08/26 全球购物
《花瓣飘香》教学反思
2014/04/15 职场文书
2015年施工员工作总结范文
2015/04/20 职场文书