当以 space(整个单词)的某个字符串开头时在字符串中查找子字符串

Find substring in string when beginning with some string to space (whole word)

我正在尝试从字符串中查找子字符串并从中获取以宽度字 - $search 开头的部分。现在,它正在工作,但我想找到这个整个单词的子字符串,到 space。怎么做?

我正在使用:

  $results[] = [ 'value' => substr(strip_tags($query->content), strpos(strip_tags($query->content),$search) ,30)];

我也试过:

 $results[] = [  'value' => substr(strip_tags($query->content), strpos(strip_tags($query->content),$search) ,strpos(strip_tags($query->content), ' ',30))];

但是它发现子串没有间隔。

已编辑:我做到了,但所有记录都重复了两次。我只需要显示两次标题和内容。我不得不为 $matches 循环,但现在,recoreds 重复。如何解决?谢谢

foreach ($sql as $query) {


preg_match('#(' . preg_quote($search, '#') . '.{30,}?)\s#', strip_tags($query->content), $matches);

foreach($matches as $key=>$val) {
$results[] = [  'id' => $query->title, 'value' => $val];
}

}

return $results;

这可以使用正则表达式轻松完成

preg_match('#(' . preg_quote($search, '#') . '.{30,}?)\s#', strip_tags($query->content), $match);
$results[] = [ 'value' => $match[1] ];