0
in php angepasst Teil einer Zeichenfolge markieren
Dies ist meine aktuelle Funktion in php:Wie
function highlight_keywords($keyword, $string) {
return preg_replace("/\p{L}*?".preg_quote($keyword)."\p{L}*/ui", "<span class=\"h\">$0</span>", $string);
}
Die CSS-Klasse:
span.h {
font-weight: 700;
color: @color_action;
}
Beispiel:
echo highlight_keywords('anto', 'Andres Santos');
Das Problem ist, dass das Ergebnis ist:
Andres <span class="h">Santos</span>
... und es sollte sein:
Andres S<span class="h">anto</span>s
Warum haben Sie die \ p {L} *? Teil des Musters? Warum nicht einfach 'preg_replace zurückgeben ("/". Preg_quote ($ Schlüsselwort)."/Ui "," $ 0 ", $ string);' –
@BrandonHorsley hast du recht. Ihre Antwort ist noch einfacher als die erste Antwort unten. – andufo
Es ist nicht notwendig, eine Regex zu verwenden, um einen statischen Wert zu erhalten. Verwenden Sie 'return str_replace ($ keyword, ''. $ Schlüsselwort. '', $ string);' – chris85