PHP显示最多100个字符的句子

PHP显示最多100个字符的句子,php,freebase,Php,Freebase,我的PHP脚本调用Freebase API并输出一个段落,然后对该段落执行一点正则表达式和其他解析魔术,并将数据返回到变量$paragration。这一段由多个句子组成。我想做的是返回一个较短的段落 我想显示第一句话。如果少于100个字符,那么我想显示下一个句子,直到至少100个字符 我该怎么做呢?这不需要正则表达式。您可以使用偏移量为99来查找位置100处或之后的第一个周期,并抓取到该长度 $shortPara = substr($paragraph, 0, strpos($paragraph

我的PHP脚本调用Freebase API并输出一个段落,然后对该段落执行一点正则表达式和其他解析魔术,并将数据返回到变量
$paragration
。这一段由多个句子组成。我想做的是返回一个较短的段落

我想显示第一句话。如果少于100个字符,那么我想显示下一个句子,直到至少100个字符


我该怎么做呢?

这不需要正则表达式。您可以使用偏移量为99来查找位置100处或之后的第一个周期,并抓取到该长度

$shortPara = substr($paragraph, 0, strpos($paragraph, '.', 99) + 1);
如果原始段落少于100个字符,或者没有以句点结尾,您可能需要添加一些额外的检查:

// find first period at character 100 or greater
$breakAt = strpos($paragraph, '.', 99);
if ($breakAt === false) {
    // no period at or after character 100 - use the whole paragraph
    $shortPara = $paragraph;
} else {
    // take up to and including the period that we found
    $shortPara = substr($paragraph, 0,  $breakAt + 1);
}

一个快速的方法是抓取前100个字符并递减,直到找到句点为止。@VaughanHilts这将返回最大句子总数不超过100个字符-OP要求至少100个。抓取长度为100的子字符串,并检查是否有句点。如果没有,就拿99。句点作为最后一个字符?如果没有,再去。继续递减直到你看到一个句点。我很抱歉-所以找到所有句点的索引,然后以此为基础。是的,在第一次匹配时使用strpos。如果还没过100,继续前进。如果是的话,这是可以接受的,你可以去。