Вырезать содержимое после 10 слов

Возможный дубликат:
Как выбрать первые 10 слов предложения?

Я хочу показать 10 слов содержимого слов, а не символов

$string = 'Lorem ipsum dolor sit amet,consectetur adipiscing elit. Mauris ornare luctus diam sit amet mollis.'; 

должен ли результат быть
«Lorem ipsum dolor sit amet, consectetur adipiscing elit. Mauris ornare"

Попробуйте эту функцию:

 function shorten_string($string, $wordsreturned) { $retval = $string; $string = preg_replace('/(?<=\S,)(?=\S)/', ' ', $string); $string = str_replace("\n", " ", $string); $array = explode(" ", $string); if (count($array)<=$wordsreturned) { $retval = $string; } else { array_splice($array, $wordsreturned); $retval = implode(" ", $array)." ..."; } return $retval; } 

На ваш текст, так вот так:

 $string = 'Lorem ipsum dolor sit amet,consectetur adipiscing elit. Mauris ornare luctus diam sit amet mollis.'; $firsttenwords = shorten_string($string, 10); 

Отсюда .

UPDATE: теперь он совместим с пространством, а также совместим с новой строкой.

Эта версия будет работать независимо от того, какое «пространство» вы используете между словами и может быть легко расширена для обработки других символов … в настоящее время она поддерживает любой символ пробела плюс. ; ? !

 function getSnippet( $str, $wordCount = 10 ) { return implode( '', array_slice( preg_split( '/([\s,\.;\?\!]+)/', $str, $wordCount*2+1, PREG_SPLIT_DELIM_CAPTURE ), 0, $wordCount*2-1 ) ); } 

Для тех кто должен может предпочесть исходное форматирование 🙂

 function getSnippet( $str, $wordCount = 10 ) { return implode( '', array_slice( preg_split('/([\s,\.;\?\!]+)/', $str, $wordCount*2+1, PREG_SPLIT_DELIM_CAPTURE), 0, $wordCount*2-1 ) ); } 

Мы можем получить слова в строке, используя функцию str_word_count.

Подробнее о функции см. Ниже ссылку

http://php.net/manual/en/function.str-word-count.php

Для отображения всего 10 слов в строке, пожалуйста, обратитесь к приведенному ниже фрагменту кода

  $str='Lorem ipsum dolor sit amet,consectetur adipiscing elit. Mauris ornare luctus diam sit amet mollis.'; $words=str_word_count($str,true); $a=array_slice($words,10); $s=join('',$a); echo $s; 

Пытаться:

 $str = 'Lorem ipsum dolor sit amet,consectetur adipiscing elit. Mauris ornare luctus diam sit amet mollis.'; $arr = explode(" ", str_replace(",", ", ", $str)); for ($index = 0; $index < 10; $index++) { echo $arr[$index]. " "; } 

Вывод:
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Mauris ornare

Попробуйте это

 $str = 'Lorem ipsum dolor sit amet,consectetur adipiscing elit. Mauris ornare luctus diam sit amet mollis.'; $arr = explode(" ", str_replace(",",", ",$str), 10); echo implode(" ", $arr);