highlighting words at the end of a word

Posted by fusion on Stack Overflow See other posts from Stack Overflow or by fusion
Published on 2010-05-28T19:30:21Z Indexed on 2010/05/28 19:31 UTC
Read the original article Hit count: 331

Filed under:
|
|
|

i'm not sure how i could have phrased the title better, but my issue is that the highlight function doesn't highlight the search keywords which are at the end of the word. for example, if the search keyword is 'self', it will highlight 'self' or 'self-lessness' or 'Self' [with capital S] but it will not highlight the self of 'yourself' or 'himself' etc. .

this is my highlight function:

function highlightWords($text, $words) {
    preg_match_all('~\w+~', $words, $m);
    if(!$m)
        return $text;
    $re = '~\\b(' . implode('|', $m[0]) . ')~i';
    $string = preg_replace($re, '<span class="highlight">$0</span>', $text);

    return $string;
}

© Stack Overflow or respective owner

Related posts about php

Related posts about search