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