PHP 截断文本保留关键字

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了PHP 截断文本保留关键字相关的知识,希望对你有一定的参考价值。

//$h = text
//$n = keywords to find separated by space
//$w = words near keywords to keep
function truncatePreserveWords ($h,$n,$w=5,$tag='b') {
	$n = explode(" ",trim(strip_tags($n)));	//needles words
	$b = explode(" ",trim(strip_tags($h)));	//haystack words
	$c = array();						//array of words to keep/remove
	for ($j=0;$j<count($b);$j++) $c[$j]=false;
	for ($i=0;$i<count($b);$i++) 
		for ($k=0;$k<count($n);$k++) 
			if (stristr($b[$i],$n[$k])) {
				$b[$i]=preg_replace("/".$n[$k]."/i","<$tag>\\0</$tag>",$b[$i]);
				for ( $j= max( $i-$w , 0 ) ;$j<min( $i+$w, count($b)); $j++) $c[$j]=true; 
			}	
	$o = "";	// reassembly words to keep
	for ($j=0;$j<count($b);$j++) if ($c[$j]) $o.=" ".$b[$j]; else $o.=".";
	return preg_replace("/\.{3,}/i","...",$o);
}

以上是关于PHP 截断文本保留关键字的主要内容,如果未能解决你的问题,请参考以下文章

用链接截断 html 中的文本以显示更多/更少并将元素保留在里面

php Joomla字符串截断带省略号,保留html标记

截断PHP返回的文本

php 截断ACF文本框

PHP 在Word Break中截断文本

PHP 在分词时截断文本