Что лучший способ состоит в том, чтобы получить первые 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
-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]);
<?php
$words = explode(" ", $string);
$first = join(" ", array_slice($words, 0, 5));
$rest = join(" ", array_slice($words, 5));