PHP Какой лучший способ получить первые 5 слов строки?

Каков наилучший способ получить первые 5 слов строки? Как я могу разделить строку на две так, чтобы первая подстрока имела первые 5 слов исходной строки, а вторая подстрока составляла остальную часть исходной строки

 $pieces = explode(" ", $inputstring); $first_part = implode(" ", array_splice($pieces, 0, 5)); $other_part = implode(" ", array_splice($pieces, 5)); 

explode разбивает исходную строку на массив слов, array_splice позволяет вам получить определенные диапазоны этих слов, а затем implode объединяет диапазоны обратно в одну строку.

Следующее сильно зависит от того, что вы определяете как слово, но это кивок в другом направлении, от простого explode .

 $phrase = "All the ancient classic fairy tales have always been scary and dark."; echo implode(' ', array_slice(str_word_count($phrase, 2), 0, 5)); 

дает

Вся древняя классическая фея


Другая альтернатива, так как все любят регулярное выражение, было бы что-то вроде:

 preg_match('/^(?>\S+\s*){1,5}/', $phrase, $match); echo rtrim($match[0]); 
 <?php $words = explode(" ", $string); $first = join(" ", array_slice($words, 0, 5)); $rest = join(" ", array_slice($words, 5)); 
 implode(' ', array_slice(explode(' ', $contents), 0, 5)); 

Примечание: здесь, наконец, вы можете увидеть 0, 10, он будет печатать от стартового слова до 10-го слова, поэтому вы можете исправить, как вы хотите начать с слова на общее количество слов.