Php 以某个字符串开头时在字符串中查找子字符串以空格(整字)

Php 以某个字符串开头时在字符串中查找子字符串以空格(整字),php,space,substr,strpos,Php,Space,Substr,Strpos,我试图从字符串中找到子字符串,并从中获得开始宽度单词-$search的部分。现在,它工作了,但我想找到这个子字符串到整个单词,到空间。怎么做 我正在使用: $results[]=['value'=>substr(带标签($query->content),strpos(带标签($query->content),$search),30)]这可以通过正则表达式轻松完成 preg_match('#(' . preg_quote($search, '#') . '.{30,}?)\s#', strip_

我试图从字符串中找到子字符串,并从中获得开始宽度单词-$search的部分。现在,它工作了,但我想找到这个子字符串到整个单词,到空间。怎么做

我正在使用:


$results[]=['value'=>substr(带标签($query->content),strpos(带标签($query->content),$search),30)]这可以通过正则表达式轻松完成

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

你的用户名非常合适;很抱歉你的讽刺。你在这里的意思真的不清楚吗?你能举一个小例子吗?我正在
strip\u tags($query->content),
中搜索$search的出现,当我找到它时,我想显示宽度$search开头的30个字符,但要将这些字符显示在空白处,不要剪切word。所以你想显示至少30个字符,然后再剪切下面的空白?我用$match更改了$match[1],这很好!非常感谢你!尝试替换preg_match('.#('.preg_quote($search,'.#')。{30,}?\s#',strip_标记($query->content),$matches);使用preg_match('#'.preg_quote($search,'#')。{30,}?\s#',strip_标记($query->content),$matches);然后,您应该只获得1个匹配项,而不是2个匹配项从正则表达式中删除开头和结尾()