0
字符串匹配的一部分。这是在PHP我目前的功能:如何突出在PHP
function highlight_keywords($keyword, $string) {
return preg_replace("/\p{L}*?".preg_quote($keyword)."\p{L}*/ui", "<span class=\"h\">$0</span>", $string);
}
的CSS类:
span.h {
font-weight: 700;
color: @color_action;
}
例子:
echo highlight_keywords('anto', 'Andres Santos');
问题结果是:
Andres <span class="h">Santos</span>
...它应该是:
Andres S<span class="h">anto</span>s
为什么你的\ p {L} *?模式的一部分?为什么不只是'return preg_replace(“/”。preg_quote($ keyword)。“/ ui”,“ $ 0”,$ string);' –
@BrandonHorsley你是对的。你的答案比下面的第一个答复更简单。 – andufo
没有必要使用正则表达式来匹配静态值。使用'return str_replace($ keyword,''。$ keyword。'',$ string);' – chris85