获得句子)包括(s)搜索词)?

时间:2012-09-02 21:01:10

标签: php get

我希望得到包含(s)搜索词的句子。我试过这个但是不能使它正常工作。

$string = "I think instead of trying to find sentences, I'd think about the amount of 
context around the search term I would need in words. Then go backwards some fraction of this number of words (or to the beginning) and forward the remaining number 
of words to select the rest of the context.";

$searchlocation = "fraction";

$offset = stripos( strrev(substr($string, $searchlocation)), '. ');
$startloc = $searchlocation - $offset;
echo $startloc;

3 个答案:

答案 0 :(得分:2)

你可以得到所有的句子。

试试这个:

$string = "I think instead of trying to find sentences, I'd think about the amount of 
context around the search term I would need in words. Then go backwards some fraction of this number of words (or to the beginning) and forward the remaining number 
of words to select the rest of the context.";

$searchlocation = "fraction";

$sentences = explode('.', $string);
$matched = array();
foreach($sentences as $sentence){
    $offset = stripos($sentence, $searchlocation);
    if($offset){ $matched[] = $sentence; }
}
var_export($matched);

答案 1 :(得分:2)

使用array_filter函数

$sentences = explode('.', $string);
$result = array_filter(
    $sentences, 
    create_function('$x', "return strpos(\$x, '$searchlocation');"));

注意:create_function的第二个参数中的双引号是必要的。

如果您有匿名功能支持,可以使用此功能

$result = array_filter($sentences, function($x) use($searchlocation){
        return strpos($x, $searchlocation)!==false;
});

答案 2 :(得分:1)

由于您使用strrev()反转字符串,因此您会找到[space].而不是.[space]