所以我有以下代码,突出显示在搜索结果中输入搜索栏的单词:
$sk = explode(" ",$searchVal);
foreach ($searchPostResults as $pagePosts)
echo '<li><span class="searchResult"><a href="'
. get_the_permalink($pagePosts->ID) . '" title="">' .
preg_replace('/\b(' . implode('|', $sk) . ')\b/iu',
'<strong class="searchHighlight">\0</strong>',
get_the_title($pagePosts->ID))
. '</a></span></li>';
现在它在大多数情况下都有效。 让我们说我输入搜索词&#34;如何&#34;在搜索栏中,单词如何突出显示。 现在,如果在淋浴等另一个词里面的话怎么样,我想强调一下如何:
s<strong class="searchHighlight">how</strong>er
任何人都知道如何调整代码来执行此操作。
干杯
答案 0 :(得分:4)
您所描述的行为与大多数人的意图相反,也可能是您的正则表达式中包含\b
的原因。 \b
是word boundary,因此您只能使用完整的字词匹配。删除\b
,它应该工作。您也不需要捕获组。
preg_replace('/' . implode('|', $sk) . '/iu',