我试图从字符串中找到子字符串并从中开始宽度字 - $ search。现在,它正在工作但我希望找到整个单词到空格的子字符串。怎么做?
我正在使用:
$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))];

但它发现子串不是间隔。
编辑:我做了,但所有记录都重复了两次。我只需要两次显示标题和内容。我不得不为$ match进行循环,但现在,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;

答案 0 :(得分:1)
这可以通过正则表达式轻松完成
preg_match('#(' . preg_quote($search, '#') . '.{30,}?)\s#', strip_tags($query->content), $match);
$results[] = [ 'value' => $match[1] ];