|  | Posted by Ac on 05/12/05 00:16 
Merlin wrote:> Hi there,
 >
 > 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?`
 >
 > Thank you for any help,
 >
 > merlin
 
 I whipped this together, it should work ok. You'll want to clean it up,
 but you get the gist.
 
 <?php
 /* AC Was here */
 
 $str="I'm going to the store to buy some stuff.";
 $bold=array("store","some","stuff");
 
 
 function boldWord($str,$bold) {
 if(isset($str)) {
 foreach($bold as $b) {
 echo "$b should be <b>$b</b>\n";
 $str = eregi_replace($b,"<b>$b</b>",$str);
 }
 $string=$str;
 return $string;
 } else {
 $string='The inputed variable $str was empty.';
 return $string;
 }
 } // End function bracket
 
 
 
 
 // Example usage
 if(isset($str)) {
 $string=boldWord($str,$bold);
 echo "Original: $str \n";
 echo "New: $string\n";
 } else {
 echo "Variable str not set.";
 }
 ?>
  Navigation: [Reply to this message] |