Каков наилучший способ получить первые 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-го слова, поэтому вы можете исправить, как вы хотите начать с слова на общее количество слов.