只有在包含确定子字符串时才获取字符串的一部分

时间:2013-10-30 11:04:18

标签: php

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

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。”

使用像“劳动”这样的子串,得到“劳动”和上一个和后20个字符:

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

修改 我正在开发一个网站的搜索框,所以给出一个单词我想要返回包含该单词的所有段落,但段落很长,所以我只想返回它的一部分。

2 个答案:

答案 0 :(得分: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);

答案 1 :(得分: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...