自定义函数实现类似百度搜索关键字在网页中匹配字符高亮显示效果。完全用php来实现简单但很有趣的效果。函数如下:
<?php
/**
* @param $wd 搜索的词语
* @param $str 要搜索的文章
* @return $string 返回高亮后的文章
*/
function lightSearch($wd,$str){
$strnum = mb_strlen($wd,'UTF8');
while($strnum){
$array[]=mb_substr($wd,0,1,'utf8');
$wd= mb_substr($wd,1,$strnum,'utf8');
$strnum=mb_strlen($wd,'UTF8');
}
foreach($array as $v){
$str = str_replace($v,'<font style = "color:#DB6D4B">'.$v.'</font>',$str);
}
return $str;
}
?>
下面举个实例,我们来高亮一篇文章中的‘宇宙’词。讲所有的宇宙字高亮为淡红色
<?php
header('Content-type:text/html;charset=utf-8');
$wd = '宇宙';
$str = "据美国媒体报道,科学家上周宣布,位于南极的一架望远镜在太空中侦测到了宇宙诞生最初时发出的涟漪。这次发现可能印证了天文学家最珍视的“宇宙大爆炸”(Big Bang)模型,但其影响远不仅限于此。报道指出,名为Bicep2的望远镜观测到的涟漪,是宇宙大爆炸遗留下来的微波辐射偏振所产生的微弱螺旋图案。这些涟漪仿佛古迹,产生这些辐射的能量比大型强子对撞机的能量高出一万亿倍。这种引力波是一种被称为“暴胀”(inflation)的理论中,研究人员长期寻求的标记,它就是让“大爆炸”理论中的“爆炸”发生的力量。在宇宙的时钟启动之后的一万亿亿亿分之一秒后,这种反引力的爆发就开始了。这是过去两年里第二次出现实验证实大爆炸模型的情况,而这一想法仅仅几十年前还被认为激进。第一次是2012年7月宣布的发现希格斯玻色子(Higgs boson)的消息,这种粒子与一种向其他粒子赋予质量的能量场相关。";
function lightSearch($wd,$str){
$strnum = mb_strlen($wd,'UTF8');
while($strnum){
$array[]=mb_substr($wd,0,1,'utf8');
$wd= mb_substr($wd,1,$strnum,'utf8');
$strnum=mb_strlen($wd,'UTF8');
}
foreach($array as $v){
$str = str_replace($v,'<font style = "color:#DB6D4B">'.$v.'</font>',$str);
}
return $str;
}
echo lightSearch($wd,$str);
?>
运行结果如下: