RE: [PHP] marking words bold
| From: | Murray @ PlanetThoughtful | 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