如何获得字符串的前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(" ", $inputstring, 6)
来避免不必要的拆分。 - salathe$other_part = implode(" ", array_splice($pieces, 5));
修改为$other_part = implode(" ", array_splice($pieces, 0));
,至少在PHP 7中。 - Jorge Anzola以下内容严重取决于您如何定义一个单词,但这是对另一个方向的认可,远离简单的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));
str_split
并不是你认为的那样。 - Amberstr_split
和 explode
搞混了,纠正了这个小错误。 - Kenaniahimplode(' ', array_slice(explode(' ', $contents), 0, 5));
注意:在这里,你可以看到0、10,它将从第一个单词打印到第十个单词,因此你可以根据需要从单词开始修复到总单词数。
s($str)->words(5)
,此函数可在这个独立库中找到。 - caw