php 不区分大小写,搜索结果高亮显示,结果保持大小写原状

 function highlight($str,$key){

 
$strsmall = strtolower($str);
$keysmall = strtolower($key);
$keytotal = substr_count($strsmall,$keysmall);
$keylenth = strlen($key);   //获取关键词长度
for($i=0;$i<$keytotal;$i++)
{
$firstint[$i] = stripos($str,$key);
//echo       $firstint[$i] ."<br>";           //获取匹配到关键词的第一个位置
$key2[$i] = substr($str,$firstint[$i],$keylenth); //获取字符串中跟关键词一样的词(大小写可能不一样)
//echo $key2[$i] ."<br>";   
$str = preg_replace('/'.$key2[$i].'/i','<_临时字符串'.$i.'_>',$str,1); 
}
for($i=$keytotal-1;$i>=0;$i--)
{
$str = preg_replace('/<_临时字符串'.$i.'_>/',"<font style='color:red;'>".$key2[$i]."</font>",$str,1); 
}
 
return $str;
}

·关于我们·免责声明·服务条款·RSS订阅·dede168.com技术支持

Copyright © 1998-2015  All rights reserved.