Zvýraznění výsledků vyhledávání

Jednoduchá funkce pro zvýraznění výsledků ve vyhledávání. Všechny nálezy označí třídou marked.

function highlightStr($needle,$haystack) {
    if (strlen($haystack) < 1 || strlen($needle) < 1) {
        return $haystack;
    }
    preg_match_all("/$needle+/i", $haystack, $matches, PREG_SET_ORDER);
    if (is_array($matches[0]) && count($matches[0]) >= 1) {
        foreach ($matches[0] as $match) {
            $haystack = str_replace($match, '<span class="marked">'.$match.'</span>', $haystack);
        }
    }
    return $haystack;
}