ted_chou12 Posted April 11, 2007 Share Posted April 11, 2007 When I am trying to highlight the matched results: <?php $string = "This is Good and Bad"; $search = "good bad"; $words = preg_split("/\s+/", $search); foreach ($words as $word) { preg_quote($word, "/"); $string = preg_replace("/\b$word\b/i", "<b>$word</b>", $string);} echo "$string<br />"; The results becomes "This is <b>good</b> and <b>bad</b>" However, I wish the matched strings to remain in their orignal formats: "This is <b>Good</b> and <b>Bad</b>" so that they do not mislead the information. Can anyone suggest me how can I go about doing that? Thanks Ted Quote Link to comment Share on other sites More sharing options...
effigy Posted April 11, 2007 Share Posted April 11, 2007 I changed the replace and fixed a bug on my part with the preg_quote. <?php $string = "This is Good and Bad"; $search = "good bad"; $words = preg_split("/\s+/", $search); foreach ($words as $word) { $word = preg_quote($word, "/"); $string = preg_replace("/\b($word)\b/i", '<b>$1</b>', $string); } echo "$string<br />"; ?> Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.