jwaldrip Posted December 2, 2007 Share Posted December 2, 2007 I am trying to replace characters with HTML. I need to look at a letter within a string and replace it with a div. For example in "jason" this would return 5 divs each with their own class. Glance at my code, what am i doing wrong? <? $repdiv[0] = '<div class="a"></div>'; $repdiv[1] = '<div class="b"></div>'; $repdiv[2] = '<div class="c"></div>'; $repdiv[3] = '<div class="d"></div>'; $repdiv[4] = '<div class="e"></div>'; $repdiv[5] = '<div class="f"></div>'; $repdiv[6] = '<div class="g"></div>'; $repdiv[7] = '<div class="h"></div>'; $repdiv[8] = '<div class="i"></div>'; $repdiv[9] = '<div class="j"></div>'; $repdiv[10] = '<div class="k"></div>'; $repdiv[11] = '<div class="l"></div>'; $repdiv[12] = '<div class="m"></div>'; $repdiv[13] = '<div class="n"></div>'; $repdiv[14] = '<div class="o"></div>'; $repdiv[15] = '<div class="p"></div>'; $repdiv[16] = '<div class="q"></div>'; $repdiv[17] = '<div class="r"></div>'; $repdiv[18] = '<div class="s"></div>'; $repdiv[19] = '<div class="t"></div>'; $repdiv[20] = '<div class="u"></div>'; $repdiv[21] = '<div class="v"></div>'; $repdiv[22] = '<div class="w"></div>'; $repdiv[23] = '<div class="x"></div>'; $repdiv[24] = '<div class="y"></div>'; $repdiv[25] = '<div class="z"></div>'; $letters[0] = '/a/'; $letters[1] = '/b/'; $letters[2] = '/c/'; $letters[3] = '/d/'; $letters[4] = '/e/'; $letters[5] = '/f/'; $letters[6] = '/g/'; $letters[7] = '/h/'; $letters[8] = '/i/'; $letters[9] = '/j/'; $letters[10] = '/k/'; $letters[11] = '/l/'; $letters[12] = '/m/'; $letters[13] = '/n/'; $letters[14] = '/o/'; $letters[15] = '/p/'; $letters[16] = '/q/'; $letters[17] = '/r/'; $letters[18] = '/s/'; $letters[19] = '/t/'; $letters[20] = '/u/'; $letters[21] = '/v/'; $letters[22] = '/w/'; $letters[23] = '/x/'; $letters[24] = '/y/'; $letters[25] = '/z/'; ksort ($letters); ksort ($repdiv); $printname = preg_replace( $letters , $repdiv, 'teststring' ); echo $printname; ?> Link to comment https://forums.phpfreaks.com/topic/79756-replacing-characters-with-divs/ Share on other sites More sharing options...
marcus Posted December 2, 2007 Share Posted December 2, 2007 $string = "teststring"; for($i=0;$i<strlen($string);$i++){ echo "<div class=\"".$string[$i]."\"></div>\n"; } Worked for me. Function wise could be: function convert2div($string){ for($i=0;$i<strlen($string);$i++){ $text .= "<div class=\"".$string[$i]."\"></div>\n"; } return $text; } echo convert2div('monkeys'); Link to comment https://forums.phpfreaks.com/topic/79756-replacing-characters-with-divs/#findComment-403908 Share on other sites More sharing options...
jcd Posted December 2, 2007 Share Posted December 2, 2007 Glance at my code, what am i doing wrong? I think (but not sure) its because: Lets say your test string is 'ab'. After the first match "a" is replaced the string has now changes to '<div class="a"></div>b'. Now when it looks the next matches to replace it will the letters in teh div/class tag and replace them too. View the html source of the output to see all the mangled divs. Link to comment https://forums.phpfreaks.com/topic/79756-replacing-characters-with-divs/#findComment-403929 Share on other sites More sharing options...
Recommended Posts
Archived
This topic is now archived and is closed to further replies.