Avatar billede edidak.dk Nybegynder
02. juni 2002 - 17:22 Der er 6 kommentarer og
1 løsning

Link i forum

Hej,

For at give min brugere adgang til at indsætte links i indlæg ( jeg har fjernet muligheden for direkte indsættelse af HTML kode vha. htmlspecialchars() )
anvender jeg str_replace som nedenstående:

$besked = str_replace("[L]", "<a href=\"", $besked);
$besked = str_replace("[/L]", "\">Link</a>", $besked);

Altså hvis brugeren i et indlæg skriver [L]http://www.ebadresse.dk[/L] bliver det konverteret til <a href="http://www.ebadresse.dk">Link</a>

Mit problem består i at jeg gerne vil have navnet på Link (Link) til at være http://www.ebadresse.dk Altså outputtet skal være

<a href="http://www.ebadresse.dk">http://www.ebadresse.dk</a>

Hvordan gøre dette?
Avatar billede darkhero Nybegynder
02. juni 2002 - 17:27 #1
$besked = preg_replace("/\[L](\S+?)\[/L]/is", "<a href=\"\\1\" target=\"_blank\">\\1</a>",$besked);

jeg har ikke testet det men prøv
Avatar billede leflings Nybegynder
02. juni 2002 - 17:33 #2
Du kan også selv lade den klare det hele

altså brugerne behøver kun at skrive http://www.ebadresse.dk og så laver php det selv om, vha. af følgende funktion:

$tekst = ereg_replace("((f|ht){1}tp://[a-zA-Z0-9@:%_.~#-?&]+)", "<a href="\\1">\\1</a>", $tekst);

(kan også gøres med email:)
$tekst = ereg_replace("([a-zA-Z0-9._-]+@[a-zA-Z0-9._-]+.[a-zA-Z0-9._-]+)", "<a href="mailto:\\1">\\1</a>", $tekst);
Avatar billede edidak.dk Nybegynder
02. juni 2002 - 18:09 #3
Warning: Unexpected character in input: '\' (ASCII=92) state=1 in /www/forum/viewmsg.php on line XXX

Warning: Unexpected character in input: '\' (ASCII=92) state=1 in /www/forum/viewmsg.php on line XXX

Parse error: parse error in /www/forum/viewmsg.php on line XXX

Hvor XXX er linien med $tekst = ereg_replace("((f|ht){1}tp://[a-zA-Z0-9@:%_.~#-?&]+)", "<a href="\\1">\\1</a>", $tekst);
Avatar billede edidak.dk Nybegynder
02. juni 2002 - 18:10 #4
Warning: Unknown modifier 'L' in /www/forum/viewmsg.php on line XXX hvor lini eXXX er lig med  $besked = preg_replace("/\[L](\S+?)\[/L]/is", "<a href=\"\\1\" target=\"_blank\">\\1</a>",$besked);
Avatar billede aslan Nybegynder
02. juni 2002 - 18:20 #5
ehm.. hvad er det lige forskellen på str_replace og ereg_replace er?
Avatar billede Slettet bruger
02. juni 2002 - 18:44 #6
str_replace erstatter en streng, hvorimod ereg_replace kan matche et pattern at udskifte...
Avatar billede edidak.dk Nybegynder
02. juni 2002 - 19:49 #7
Jeg fandt svaret på php.net http://www.php.net/manual/en/function.ereg-replace.php - ellers tak for jeres tid!
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