テキストのキーワードをハイライトし、大文字と小文字を区別せず、漢字phpをサポートします.
1118 ワード
/**
* , ,
* @param string $subject
* @param string $keyword
* @param string $pre
* @param string $suf
* @return string
*/
function str_highlight($subject,$keyword,$pre = '<font color="red">',$suf = '</font>'){
if(empty($subject) || empty($keyword)){
return $subject;
}
$k_len = strlen($keyword);
if($k_len > strlen($subject)){
return $subject;
}
$keyword = strtolower($keyword);
$offset=0;
$return=array();
while (1) {
$sub = substr($subject, $offset, $k_len);
if(strlen($sub)<$k_len){
if($sub){
$return[]=$sub;
}
break;
}
if(strtolower($sub) == $keyword){
$return[]=$pre;
$return[]=$sub;
$return[]=$suf;
$offset+=$k_len;
}else{
$return[]=substr($subject, $offset,1);
$offset++;
}
}//end while
return join('', $return);
}