How to style specific words from a given string ? i hyave a function to style specific words from a given string but this is not working in utf-8 string
header('Content-type: text/html; charset=utf-8');
function bold($string, $word)
{
return preg_replace('/\b'.$word.'\b/', '<strong>'.$word.'</strong>', $string);
}
echo bold('چمستان تا', 'تا');
How can i do this ? I need to bold some keyword / phrases in the search resut based on typed user query
Any help would be appreciated
Make sure that:
/u
modifierpreg_quote
the search word just in caseUse
preg_replace('/\b'.preg_quote($word,'/').'\b/u', '<strong>'.$word.'</strong>', $string);
As an alternative to \b
, you may use non-ambiguous word boundaries (no word char before or after the search word are allowed):
preg_replace('/(?<!\w)'.preg_quote($word,'/').'(?!\w)/u', '<strong>'.$word.'</strong>', $string);
or - to enforce the match inside whitespaces:
preg_replace('/(?<!\S)'.preg_quote($word,'/').'(?!\S)/u', '<strong>'.$word.'</strong>', $string);