Avatar billede ossian Nybegynder
28. april 2008 - 10:17 Der er 1 kommentar

Matche ord og replace med link

Hej,

Jeg er i gang med at lave en ordbog vha. regex og ASP, og i den forbindelse har jeg brug for hjælp til en pattern der gør følgende:

Jeg har mine ord i et array der loopes og replaces med regex. Eks:
ord1|ord2|ord3

Eks. på tekst:
"Dette er en dummy tekst der indeholder ord1, ord2 og ord3 - og der indeholder søreme også ord1 endnu en gang, og ord1 står her sgu igen."

Min regex skal tage ord1, ord2 og ord3 og replace med et link. Eks.

"Dette er en dummy tekst der indeholder <a href="http://www.minurl.com/ordbog.asp?ord=ord1">ord1</a>, <a href="http://www.minurl.com/ordbog.asp?ord=ord2">ord2</a> og <a href="http://www.minurl.com/ordbog.asp?ord=ord3">ord3</a> - og der indeholder søreme også <a href="http://www.minurl.com/ordbog.asp?ord=ord1">ord1</a> endnu en gang, og ord1 står her sgu igen."

- Hver ord skal kun replaces max 2 gange. Hvis man kan sætte antal gentagelser vil det være rigtig fint!

Ord der er en del af en URL skal ikke replaces. Eks. www.ord1.com - her skal ord1 ikke replaces.

Jeg håber at ovenstående giver mening, ellers spørg.

På forhånd tusinde tak for hjælpen!
Avatar billede wosgam Nybegynder
11. maj 2008 - 18:43 #1
Sådan?

<?php
$dummy = "yoyo hva så der nu kan jeg <a href='http://www.ord1.dk/ordbog.asp?ord=intet'>Ord1 i url uden at den bliver replaced</a> hører ord1 og så kommer ord2 og nej for satan nu kommer ord3 <a href='http://www.ord2.dk/ordbog.asp?ord=intet'>Ord2 i url uden at den bliver replaced</a> også.";
$dummy = preg_replace("/[^www\.](ord1|ord2|ord3)[^\.][a-z]{2}/",'<a href="http://www.minurl.dk/ordbog.asp?ord=\\1"> \\1</a>',$dummy);
echo $dummy;
?>
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester