Preg replace 自目标创建以来的文本的子字符串

Preg replace 自目标创建以来的文本的子字符串,preg-replace,substring,Preg Replace,Substring,我有一个在我的php页面搜索,它是确定的 在搜索结果中,我突出显示了内容上的字符串目标 $search_tag_text = @preg_replace("/($mysearch)/i", "<u style=\"color:red\">$1</u>", $row->txtContent); $search\u tag\u text=@preg\u replace(“/($mysearch)/i“,$1“,$row->txtContent); 好的,但是在我的内

我有一个在我的php页面搜索,它是确定的

在搜索结果中,我突出显示了内容上的字符串目标

$search_tag_text = @preg_replace("/($mysearch)/i", "<u style=\"color:red\">$1</u>", $row->txtContent);
$search\u tag\u text=@preg\u replace(“/($mysearch)/i“,$1“,$row->txtContent);
好的,但是在我的内容中找到一个字符串目标后,是否可以在前面显示20个单词,后面显示20个单词,而不是列出我的所有内容


任何帮助都将不胜感激。

我会尝试以下方法:

$matches = array();
preg_match("/($mysearch)/i", $search_tag_text, $matches, PREG_OFFSET_CAPTURE);
然后在匹配中,您将获得找到的字符串所在位置的偏移量,然后您可以执行以下操作:

$search_tag_text = substr($subject, ($matches[0][1] - 30), 60);
匹配前30个字符,匹配后30个字符。如果我理解正确,$mathces[i][x]中的最后一个元素是找到匹配项的偏移量