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

Reply via email to