On 1/24/2011 8:00 AM, Merlin Morgenstern wrote: > Hi there, > > I am trying to replace certain words inside a text with php. Unfortunatelly my > function is creating invalid html as output. > > For example the words "beagle" and "welpen" have to be replaced inside this > text: "süße knuffige Beagle Welpen ab sofort" > > My result looks like this: > zwei süße knuffige <a href="/bsp/hunde,beagle">Beagle <a > href="/bsp/hunde">Welpen</a></a> > > The problem is, that my function is not closing the href tag before it starts to > replace the next item. > > Here is the code: > ################################################################################################ > > // create internal links > function internal_links($str, $links, $limit) { > foreach($links AS $link){ > $pattern[$k] = "~\b($link[phrase])\b~i"; > $replace[$k] = '<a href="'.$link[link].'">\\1</a>'; > $k++; > } > return preg_replace($pattern,$replace,$str, $limit); > } > ################################################################################################I > > > I could not find a way to fix this and I would be happy for some help. Thank you > in advance! > > Merlin > Do you have control over the building of the initial "phrase" => "link" assoc? If so, reverse the order of these two items. Jim Lucas -- PHP General Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php