Avatar billede nizo Nybegynder
24. maj 2005 - 15:18 Der er 9 kommentarer og
2 løsninger

Link replace

Hej..

Jeg sidder i et lille problem med:

Jeg har en tagwall.. Naar folk skriver et link skulle der gerne komme et link af sig selv.. Jeg startede med at prøve med *.dk Min kode ser saadan her ud:

$mess = eregi_replace("(.*?).dk",'<a href="http://(.*?).dk">(.*?).dk</a>', $mess);

Men det eneste jeg faar ud af det, hvis jeg skriver fx. hej.dk er:

<a href="http://*.dk">(.*?).dk</a>

Nogle der kan hjælpe mig med en løsning?
Avatar billede nizo Nybegynder
24. maj 2005 - 15:22 #1
hov, sorry det jeg fik var i virkerligheden <a href="http://(.*?).dk">(.*?).dk</a>
Avatar billede nizo Nybegynder
24. maj 2005 - 15:45 #2
Altsaa.. jeg kan faa den til at finde ud af hvornaar der skal være et link, men hvordan faar jeg defineret linket?
Avatar billede angam Nybegynder
24. maj 2005 - 16:08 #3
Prøv følgende, hvor $string er den tekst du skal lave url'er i:

$out = preg_replace("/([a-zA-Z0-9,\._]{1,}\.dk)/", "<a href=\"http://$1\">$1</a>", $string);
echo($out);
Avatar billede nizo Nybegynder
24. maj 2005 - 16:19 #4
Kan jeg godt lave:

$string = preg_replace("/([a-zA-Z0-9,\._]{1,}\.dk)/", "<a href=\"http://$1\">$1</a>", $string);

?
Avatar billede angam Nybegynder
24. maj 2005 - 16:20 #5
Yep, det er det samme. Du kan evt. ændre til:

$string = preg_replace("/([a-zA-Z0-9,\._]{1,}\.dk)/", "<a href=\"http://$1\" target=\"_new\">$1</a>", $string);

hvis du vil have det åbnet i et nyt vindue.
Avatar billede nizo Nybegynder
24. maj 2005 - 16:24 #6
tak for svaret :D
Avatar billede nizo Nybegynder
24. maj 2005 - 16:27 #7
Hvad nu hvis man vil ha den til at gøre det sammen hvis der staar www. foran eller http:// ?
Avatar billede angam Nybegynder
24. maj 2005 - 16:58 #8
www og http:// skulle det regulære udtryk være ligeglad med.

Det som udtrykket gør er at det søger efter alle forekomster af ord der indeholder et eller flere af tegnene fra a-z, A-Z og 0-9 eller punktum og underscore (og komma - det er faktisk en fejl, for det er ikke lovligt i et hostnavn), og som slutter med '.dk'.

For hver forekomst tager det hostnavnet (f.eks. hej.dk) minus tld'et (.dk), så der kun er 'hej' tilbage, sætter 'http://' i front og '.dk' i enden.

Da '/' ikke er et gyldigt bogstav i hostnavnet, vil http:// heller ikke blive taget med i hostnavnet, så udtrykket bør virke med både 'www.' og 'http://' i front.
Jeg har dog ikke prøvet de sidste, men prøv evt selv :-)

Hvad der IKKE virker er:

http://www.counter-strike.org  (url ender på .org)
ftp://ftp.cs-maps.dk (url bliver lavet om til http://ftp.cs-maps.dk)
mailto:test@test.dk (url bliver lavet om til http://test.dk)
Avatar billede nizo Nybegynder
24. maj 2005 - 19:29 #9
Jeg forstaar ikke rigtigt :/
Avatar billede angam Nybegynder
24. maj 2005 - 19:34 #10
Hvilken del af det forstår du ikke?
Avatar billede nizo Nybegynder
25. maj 2005 - 11:53 #11
Hvad jeg skal gøre..
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
Vi tilbyder markedets bedste kurser inden for webudvikling

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