Re: preg_replace question

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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



[Index of Archives]     [PHP Home]     [Apache Users]     [PHP on Windows]     [Kernel Newbies]     [PHP Install]     [PHP Classes]     [Pear]     [Postgresql]     [Postgresql PHP]     [PHP on Windows]     [PHP Database Programming]     [PHP SOAP]

  Powered by Linux