php - Highlight multiple keyword with color in the given string -
i want highlight multiple text background color in given string.
i using code:
<style> .highlight{ background: #cedaeb; } </style> <? $str = 'led plant lamp , nikeshoes, hid xenon lamps, torchs, xenon lamp, mp3, mp4, sola, glass'; $keywords = array("k span","htc","nike","tma","ass","ck","rei","bov"); $style = 'highlight'; foreach($keywords $keyword) { $replacement = "<span class='".$style."'>".$keyword."</span>"; $str = str_ireplace($keyword, $replacement, $str); } homecoming $str; ?> output:led plant lamp , ass='highlight'>nikeshoes, hid xenon lamps, torchs, xenon lamp, mp3, mp4, sola, glass str_ireplace function replace keyword ass span class. kindly help me m wrong in code
try this:
<style> .highlight{ background: #cedaeb; } </style> <? $str = 'led plant lamp , nikeshoes, hid xenon lamps, torchs, xenon lamp, mp3, mp4, sola, glass'; $keywords = array("k span","htc","nike","tma","ass","ck","rei","bov"); $style = 'highlight'; $arr1 = array(); $input = $str; $str = explode(" ",$str); foreach($str $index=>$strings) { for($i=0; $i<count($keywords); $i++) { if (stristr($strings, $keywords[$i]) !== false){ if(!isset($arr1[$index])) { $str_first_position = stripos($strings,$keywords[$i]); $str_last_position = strlen($keywords[$i])-1 + $str_first_position; $str_first_char = substr($strings,0,$str_first_position); $str_last_char = substr($strings,$str_last_position+1,strlen($strings)); $arr1[$index] = $str_first_char."<span class='".$style."'>".$keywords[$i]."</span>".$str_last_char; } break; } } } $arr2 = $arr1+$str; ksort($arr2); homecoming implode(" ",$arr2); ?> php regex syntax-highlighting str-replace
No comments:
Post a Comment