strpos()在指定单词之前和之后显示n个字符

时间:2015-03-29 12:11:23

标签: php mysql strchr stripos

我写了一个简单的搜索引擎,想在结果中显示一些文字,实际上我想在SEARCH QUERY之前显示200个字符,在SEARCH QUERY之后显示200个字符。

示例:

SEARCH QUERY:TEST

结果:

  

BLAH BLAH BLAH BLAH BLAH BLAHBLAH BLAH BLAHBLAH BLAH BLAHBLAH BLAH   BLAHBLAH BLAH BLAHBLAH BLAH BLAH BLAH BLAH BLAH TEST BLAH BLAH   BLAH BLAH BLAH BLAH BLAH BLAH BLAH BLAH BLAH BLAH BLAH BLAH BLAH。

我想要这个输出:

  

...... BLAH BLAH BLAH BLAH TEST BLAH BLAH BLAH BLAH ...

前后有3个点。

$text= $row["text"];
$find = $term;
$result = strpos($text, $find);

但是我不知道如何将它设置为在$ term之前显示200个字符,在$ text之后显示200个字符。

1 个答案:

答案 0 :(得分:2)

您可以使用substr()

substr()函数返回字符串的一部分。

substr(string,start,length) 

阅读more

从文字的位置开始。减去200(长度)将获得之前的字符,加上200(长度)将得到它之后的字符(此处添加文本的长度,因为我们从$text的第一个字母开始)

$text= $row["text"];
$find = $term;
$result = strpos($text, $find);
echo substr($text,($result-200>0)?($result-200):0,200)." ".$find." "
.substr($text,$result+strlen($find),200);