highlighting multi term search results
| From: | jonas_weber @ gmx . ch | Date: | Sun, 07 Sep 2003 12:05:08 +0000 |
| Subject: | highlighting multi term search results | ||
| Groups: | php.general | ||
| Request: | Send a blank email to php-general+get-161901@lists.php.net to get a copy of this message | ||
hi, i'm working on a function that highlights search results. problem: a search input like "te est"; two terms that match one word ("test"). the mysql query matches entries like this but my function isn't able to highlight them the right way:
<?
function highlight($src_terms, $src_terms_int, $result) {
$i = 0;
while ($i < $src_terms_int) {
$result = preg_replace('/('.$src_terms[$i].')/si', '<b>'.$src_terms[$i].'</b>', $result);
$i++;
}
return $result;
}
$search = "te est"; // user input to search for
$src_terms = explode(" ", $search);
$src_terms_int = count($src_terms);
$result = "this is just a test"; // result from database
print highlight($src_terms, $src_terms_int, $result);
?>
output: this is just a <b>te</b>st
(after the first term is highlighted the second one can't be found anymore.)
someone has an idea how to work around this?
thanks for your effort!
jonas
ps: please also let me know if you know of a website that might help, i didn't find anything useful. thanks!