欢迎您来到,码代码-李雷博客        登录  |  注册

PHP将搜索后结果标题进行标红显示同时保持原标题字母大小写的方法

更新:2020-03-25 13:01:04
人气:471
来源:本站原创
A+

在做李雷博客搜索功能时,想让用户检索关键词之后能在标题中标红色提示,同时又不影响原标题所显示的状态,就写了这个函数。用于替换标题中指定字符的颜色,同时兼顾了大多数以编程为主的网站经常出现大小写字母标题类的处理办法。

这个问题其实自己早就发现了,到今天闲下来了,才想起解决,PHP代码共享了。

function keywordlight($keyword,$rstitle,$jingdu){//关键词加亮 jingdu =0 开启模糊,其余任何值为精确,但必须有初始值
	//keywordlight($title_search,clear_all($rs["title"]),'0');

	$rstitle=htmlspecialchars_decode($rstitle);//将被转义的字符转回HTML实体
	
	if ($keyword!==''){
	
		if ($jingdu=='0'){//开启模糊查询,利用区位码单字分隔
			$str_qwm = '';
			for($i=0; $i<strlen($keyword); $i++){
				$str_c=(@ord($keyword[$i])>0xa0?substr($keyword, $i++, 2):substr($keyword, $i, 1));//将字以空格断开
				$str_qwm = $str_qwm.$str_c." ";
			}
			
			$keyword=$str_qwm;
		}
		
		
		$word = explode(' ',$keyword);
		$length = count($word);
		for($iop = 0; $iop < $length; $iop++){  
			/*
			李雷博客是以PHP编程为主,标题中经常会出现大小写字母的英文。
			为了保持原标题的状态,保持标红着色同时还不能改变原标题中的大写或小写,需要将关键词替换两次处理
			*/
			
			for($e=0;$e<mb_strlen($word[$iop]);$e++){//不管是字还是字符串,都再分解成单字符
				$mubiao=mb_substr($word[$iop],$e,1,'GBK');//mb_strlen和mb_substr主要解决中文截取乱码的问题
				//$mubiao=$word[$iop];
				$rstitle=str_replace(strtoupper($mubiao),"{##}".strtoupper($mubiao)."{@@}",$rstitle);//大写字母替换一遍
				$rstitle=str_replace(strtolower($mubiao),"{##}".strtolower($mubiao)."{@@}",$rstitle);//小写字母再替换一遍
			}
			
		}
		
		$rstitle=str_replace("{##}","<span style='color:#FF0000;' >",$rstitle); //转换成特殊标记,标题不能含有特殊文字
		$rstitle=str_replace("{@@}","</span>",$rstitle);
		
		return $rstitle;

	}else{
		return $rstitle;
	}
	
}

{#A#}和{@B@}只是做为模板替换的标记符号

函数调用方法:

<?
$title=keywordlight($title_search,$rs["title"],'0');
?>


打赏

取消

感谢您的支持,我会继续努力的!

扫码打赏,你说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

推荐的文章
# 发表我的评论
  /     /  
# 最近评论
暂时还没有评论,要不要说点什么?
  本站PHP博客源代码下载
  本站PHP博客源代码下载
本站使用的PHP博客系统采用PHP和MySql开发,程序开发完全是因为个人爱好,是自己纯手写PHP源代码,未采用任何PHP框架,现已免费开源共享提供给大家下载!
PHP博客下载
  联系博主
QQ:858353007   个人微信号:lileihot123
网站地图
会员服务
关于我们
QQ:858353007
 
广告服务
加我微信
移动端访问
 
 
Copyright © 2014- 2020 www.mdaima.com All Rights Reserved.
李雷博客,专注PHP经验、PHP教程及PHP源代码开源下载分享的PHP博客!   ICP备案号:京ICP备10202169号