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

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

Ответ 1

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

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

Ответ 2

Далее сильно зависит то, что вы определяете как word, но это кивок в другом направлении, вдали от простого explode -ing.

$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]);

Ответ 3

<?php
$words = explode(" ", $string);
$first = join(" ", array_slice($words, 0, 5));
$rest = join(" ", array_slice($words, 5));

Ответ 4

implode(' ', array_slice(explode(' ', $contents), 0, 5));

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