Главная > PHP > php: первые n слов из текста

php: первые n слов из текста

Ограничение на количество выводимых слов:

function limit_words($string, $word_limit) {
	$words=explode(" ",$string);
	return implode(" ",array_splice($words,0,$word_limit));
}

Ограничение по количество символов с сохранением слова, без обрезания:

function getPrewText($text,$maxwords=60,$maxchar=50) {
	//$text=strip_tags($text);
	$words=split(' ',$text);
	$text='';
	foreach ($words as $word) {
		if (mb_strlen($text.' '.$word)<$maxchar) {
			$text.=' '.$word;
		}
		else {
			$text.='...';
			break;
		}
	}
	return $text;
}

источники:
http://www.izero.ru/programmirovanie/ogranichenie-vyvoda-kolichestva-slov-v-predlozhenii-v-php.html
http://www.sablog.ru/php-ogranichenie-vyvoda-kolichestva-slov-v-predlozhenii/

Categories: PHP Tags:
  1. Дмитрий
    Июнь 28th,2016 в 01:57 | #1
    function kd_get_substr($count=20, $str='', $is_point = true){
    	$str_arr = explode(" ",$str);
    	if(count($str_arr)&gt;=$count){
    		$out = '';
    		for($i=0;$i&lt;$count;$i++){
    			$out .= $str_arr[$i].&#039; &#039;;
    		}
    		if($is_point == true){
    			return trim($out).&#039; ...&#039;;
    		}else{
    			return trim($out);
    		}
    	}else{
    		return $str;
    	}
    }
  2. Герман
    Февраль 3rd,2014 в 18:13 | #2

    Вот, немного допилил, чтоб работала как надо:

    function getPrewText($text,$maxwords=60,$maxchar=50) {
    	$text=strip_tags($text);
    	$words=split(' ',$text);
    	$text='';
    	$count = 0;
    	foreach ($words as $word) {
    		$count++;
    		if ($count &gt;= $maxwords) break;
    		if (mb_strlen($text.' '.$word)&lt;$maxchar) {
    			$text.=(($text != &#039;&#039;) ? &#039; &#039; : &#039;&#039;).$word;
    		} else {
    			break;
    		}
    	}
    	$text.=&#039;...&#039;;
    	return $text;
    }
  3. Николай
    Октябрь 4th,2013 в 13:58 | #3

    Спасибо помогло :)

  4. Илья
    Октябрь 1st,2012 в 17:11 | #4

    Спасибо!

Похожие публикации