RE: [PHP] marking words bold

From: Date: Wed, 11 May 2005 16:54:45 +0000
Subject: RE: [PHP] marking words bold
References: 1  Groups: php.general 
Request: Send a blank email to php-general+get-214954@lists.php.net to get a copy of this message
> I am trying to mark words inside a sentence bold. Problem is, if there is > an > overlap it does not work anymore. > I am using this code: $t = str_replace($word, "<b>$word</b>", $text); > > For eample: > Mark those words bold: adventure in singapore > Text: My adventure flying to singapore > > The problem lays in the word "in". The code I use does produce following: > <b>s<b>in</b>gapore</b> > which of course does not work properly. > > Does anybody have a good sugestion on how to improve this?` > Hi Merlin, Sounds like you need to use preg_replace, specifically testing for word boundaries. See http://au2.php.net/preg_replace and http://php.mirrors.ilisys.com.au/manual/en/reference.pcre.pattern.syntax.php for the \b word boundary syntax. Not tested, but something like the following would probably be along the right lines: $thing = preg_replace('/\bin\b/i','<b>in</b>','adventures in singapore'); echo $thing; produces: "adventures <b>in</b> singapore", ignoring the 'in' characters within 'singapore' because they don't form a word boundary Hope this helps, Much warmth, Murray

« previous php.general (#214954) next »