Avatar billede michaeltryl Seniormester
16. november 2006 - 23:50 Der er 10 kommentarer og
1 løsning

link i tekst gøres klikbart

Dette spørgsmål er sikkert besvaret mange gange, men jeg har ikke lige kunne finde noget om det.
hvis jeg har en tekst hentet ud fra en myswl databse og teksten ligger i

$tekst
hvad skal jeg så gøre med $tekst for at link skrevet med www eller http:// først bliver klikbare når teksten bliver udskrevet.
f.eks $tekst indeholder

hej min side er www.minside.dk men se også http://www.en-andenside.dk

hvordan gør jeg så sådan at brugerne kan klikke på disse link og target="_blank"
Avatar billede mcardle Nybegynder
17. november 2006 - 01:51 #1
Du kan bare skrive dine links i teksten og addslashes inden du smider den ind i din db og når du hiver den ud igen brug stripslashes.

eks.

$besked = 'hej min side er www.minside.dk men se også http://www.en-andenside.dk';
$besked = addslashes($besked);

indsæt i db.

hent ud af db.

$q = bla, bla...
$besked = $q["besked"];

$besked = stripslashes($besked);

echo $besked;
Avatar billede mixeren Nybegynder
17. november 2006 - 02:02 #2
Mon ikke det michaeltryl ønsker at gøre er på noget bruger input, f.eks. i forbindelse med en gæstebog eller tilsvarende....?

Hvis det er tilfældet så skal du bare smide det igennem en "preg_replace" og så søge efter linkene. Hvis du ikke er god til den slags, så kunne det være en god ide at kikke på en af alle de færdige der er lavet.

F.eks.
http://php.coder.dk/url2link.php
Der er også en nederst her:
http://www.eksperten.dk/spm/616080

Eller søg på exp efter "tagster". :-)
Avatar billede michaeltryl Seniormester
17. november 2006 - 02:05 #3
mixeren det er præcis det jeg ønsker og jeg tager et kig på det imorgen.
Avatar billede mcardle Nybegynder
17. november 2006 - 06:06 #4
Fedt... Så lærte jeg også noget nyt... ;oD
Avatar billede michaeltryl Seniormester
17. november 2006 - 12:46 #5
jeg brugte den fra http://php.coder.dk/url2link.php men kan ikke rigtig få den til at virke
og jeg tror måske jeg udskriver den forkerte variabel.
jeg udskriver $nteksten, men den bliver udskrevet uden klikbare links. Jeg har også prøvet at udskrive $replacements, men her bliver der ikke udskrevet noget.

her er det af koden jeg mener er nog til at finde ud af hvad jeg gør galt

$ntekst = $b[tekst];
$nnytekst = htmlentities($ntekst);
$nteksten = nl2br("$nnytekst");


function url2link($nteksten)
    {
        $username = "[a-z0-9_\-]+";
        $password = "[a-z0-9_\-!#]+";
        $host = "[a-z0-9\-]+\.[a-z0-9\-\.]+";
        $port = "\d{1,5}";
        $path = "\/[a-z0-9\/\-_\.\(\)\%#]*";
        $querystr = "\?[a-z0-9&=\-_\.%\(\)#]+";
        $proto = "(https?|ftp):\/\/";
        $url = "$host(:$port)?($path($querystr)?)?";
        $protodomain = "/$proto(($username(:$password)?@)?$url)/i";
        $domain = "/(^| )(www\.$url)/im";
        $protomail = "/mailto:($username@$host)/i";
        $mail = "/(^| )($username@$host)/im";
        $replacements = array(
                $protodomain => "<a href=\"\\0\" target=\"_blank\">\\2</a>"
                ,$domain => "\\1<a href=\"http://\\2\" target=\"_blank\">\\2</a>"
                ,$protomail => "<a href=\"\\0\">\\1</a>"
                ,$mail => "\\1<a href=\"mailto:\\2\">\\2</a>"
            );
        return preg_replace( array_keys( $replacements ), array_values( $replacements ), $nteksten );
    }
Avatar billede coderdk Praktikant
17. november 2006 - 23:15 #6
Du kalder jo slet ikke funktionen!

Den bruges sådan:

$dinTekst = url2link( $dinTekst );
Avatar billede michaeltryl Seniormester
17. november 2006 - 23:50 #7
jeps nu virker det tak for hjælpen
mixeren og coderdk
kom med et svar så får i point
Avatar billede michaeltryl Seniormester
17. november 2006 - 23:51 #8
og forresten tak for hjælpen
Avatar billede coderdk Praktikant
18. november 2006 - 00:05 #9
Næh tak, bare giv mixeren point :)
Avatar billede mixeren Nybegynder
18. november 2006 - 00:52 #10
Ellers tak, samler slet ikke på point. :-)
(svar og snup dem selv så tråden bliver lukket)
Avatar billede michaeltryl Seniormester
18. november 2006 - 00:53 #11
okay så lukker jeg
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