字符串处理 - 从字符串中获取20个单词

时间:2012-08-21 08:48:51

标签: php

我想知道从英语句子中得到前20个单词的好方法。在进一步处理之前,我需要分析它的主题和动词。因为有些句子是无用的,所以我不需要分析它们,而是转发它们:-D

好的首发先入手总是更好(pss是否有一句谚语或者说英语非常适合我的说法 - 我是一位非常活跃的英语学习者;-D)

你走了:

$array=explode($string," ");
$con=$array[0];
$i=0;
foreach($array as $v)
{
  if($i++ == 20){break;}
  $con.=" ".$v[i];
}

哦,yezzz,任何人都可以提供更好的功能或方法吗?

5 个答案:

答案 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

  

信用:How to select first 10 words of a sentence?

答案 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;