Если вы используете кордову, попробуйте очистить команду cordova
Попробуйте следующее:
preg_replace("/\w*?$keyword\w*/i", "<b>$0</b>", $str)
\ w *?
соответствует любым символам слова перед ключевым словом (как минимум если возможно) и \ w *
любые символы слова после ключевого слова.
И я рекомендую вам использовать preg_quote
, чтобы избежать ключевого слова:
preg_replace("/\w*?".preg_quote($keyword)."\w*/i", "<b>$0</b>", $str)
Для поддержки Unicode используйте флаг u и \ p {L}
вместо \ w
:
preg_replace("/\p{L}*?".preg_quote($keyword)."\p{L}*/ui", "<b>$0</b>", $str)
Вы можете сделать следующее:
$str = preg_replace("/\b([a-z]*${keyword}[a-z]*)\b/i","<b>$1</b>",$str);
Пример:
$str = "Its fun to be funny and unfunny";
$keyword = 'fun';
$str = preg_replace("/\b([a-z]*${keyword}[a-z]*)\b/i","<b>$1</b>",$str);
echo "$str"; // prints 'Its <b>fun</b> to be <b>funny</b> and <b>unfunny</b>'