-2

只有当它包含子字符串时,我才能获取部分文本。我想做的是,给定下一个例子:

1 - “Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua。”

2 - “Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut et dolore magna aliqua。”

并使用像“labore”这样的子字符串,获取“labore”以及上一个和下一个 20 个字符:

1 - “...empor incididunt ut labore et dolore magna ali...”

编辑: 我正在开发一个网站的搜索框,所以给定一个单词,我想返回包含该单词的所有段落,但是这些段落很长,所以我只想返回其中的一部分。

4

2 回答 2

0
$str = 'Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor     incididunt ut labore et dolore magna aliqua.';
$searchStr = 'labore';
$offsetLength = 20;

$pos = strpos($str, $searchStr);

if ($pos !== FALSE) // word found
    echo substr($str, $pos - $offsetLength, $pos + strlen($searchStr) + $offsetLength);
于 2013-10-30T11:09:38.623 回答
0

我设法得到了这样的东西。有点啰嗦。

$string = "Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.";

function searchStr($string, $search){
    if(strpos($string, $search) !== FALSE){
        echo "..." . substr($string, strpos($string, $search)-20, 20) . substr($string, strpos($string, $search), 20+strlen($search)) . "...";
    }
}

$res = searchStr($string, "labore");

退货

...empor incididunt ut labore et dolore magna ali...
于 2013-10-30T11:10:57.830 回答