我只有在包含子字符串时才能获取文本的一部分。 我想做的是,给出下一个例子:
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 ...”
修改 我正在开发一个网站的搜索框,所以给出一个单词我想要返回包含该单词的所有段落,但段落很长,所以我只想返回它的一部分。
答案 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...