Duncan Hill wrote:
On Wednesday 11 May 2005 17:13, Merlin wrote:
Hi there,
I am trying to strip some words from a sentence. I tried it with
str_replace like described here:
http://www.totallyphp.co.uk/code/find_and_replace_words_in_a_text_string_us
ing_str_replace.htm
Unfortunatelly it does not work the way I want, because if I want to
replace the word "in" all passages containing the characters "in" are
replaced. For example Singapore.
You need to tokenize your input and do exact matching. Alternately,
preg_match / preg_replace may work with \b to specify word boundries.
Hi Duncan,
that in fact was the key and only way to get a proper result.
I found this script on the preg_replace page of php.net:
// Function highlights $words in $str
function highlight_words($str, $words) {
if(is_array($words)) {
foreach($words as $k => $word) {
$pattern[$k] = "/\b($word)\b/is";
$replace[$k] = '<b>\\1</b>';
}
}
else {
$pattern = "/\b($words)\b/is";
$replace = '<b>\\1</b>';
}
return preg_replace($pattern,$replace,$str);
}
Which works excellent!
Thanx, Merlin
--
PHP General Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php