テキストのキーワードをハイライトし、大文字と小文字を区別せず、漢字phpをサポートします.


/**
 *           ,      ,    
 * @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);
}