当以 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] ];
我正在尝试从字符串中查找子字符串并从中获取以宽度字 - $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] ];