欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

高亮一段文本的关键字,不区分大小写,支持汉字 php 高亮关键字高亮汉字不区分大小写php

程序员文章站 2022-05-17 11:08:57
...

 

/**
 * 高亮一段文本的关键字,不区分大小写,支持汉字
 * @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);
}