我想知道从英语句子中得到前20个单词的好方法。在进一步处理之前,我需要分析它的主题和动词。因为有些句子是无用的,所以我不需要分析它们,而是转发它们:-D
好的首发先入手总是更好(pss是否有一句谚语或者说英语非常适合我的说法 - 我是一位非常活跃的英语学习者;-D)
你走了:
$array=explode($string," ");
$con=$array[0];
$i=0;
foreach($array as $v)
{
if($i++ == 20){break;}
$con.=" ".$v[i];
}
哦,yezzz,任何人都可以提供更好的功能或方法吗?
答案 0 :(得分:1)
你可以使用welknown php function substr
这是用法...
string substr ( string $string , int $start [, int $length ] )
答案 1 :(得分:1)
array_slice()
将为您切片。只需指定开始和结束元素:
$words = explode($string, ' ');
$firstTwenty = array_slice($words, 0, 20);
如果你想要变得非常紧凑(但可读性稍差),请改为:
$twentyWords= array_slice(explode($string, ' '), 0, 20);
$twentyWords
将是一个数组。如果要将其连接回字符串,只需使用implode()
:
$newString = implode(' ', $twentyWords);
答案 2 :(得分:0)
你可以试试这个功能......
$first_twenty_words = wordlimit($string, 20);
function wordlimit($string, $length = 20)
{
$words = explode(' ', $string);
if (count($words) > $length)
return implode(' ', array_slice($words, 0, $length));
else
return $string;
}
答案 3 :(得分:0)
这将使用空格作为单词边界拆分单词并返回前20:
implode(' ', array_slice(explode(' ', $sentence), 0, 20));
在某些情况下,字边界可能不是空格;您还可以查看preg_match
和\b
。
答案 4 :(得分:0)
通过这种方式,你可以获得任何字符串的前20个单词:
$str = "this is a string and i want to slice string after 20 words.
this is a string and i want to slice string after 20 words";
$strArray = explode(" ",$str);
$strArray = array_slice($strArray,0 , 20);
$string = implode(" ",$strArray);
echo $string;