Avatar billede festhest Nybegynder
17. februar 2002 - 15:28 Der er 12 kommentarer og
2 løsninger

Fra url til hyperlink

Jeg har en side: www.minside.dk

Jeg har en tekst hvor der står fx: "blbablaba http://www.min-side.dk(om mig) blalblabla http://www.min-vens-side(min ven)"

Så skal jeg have en funktionen der laver alle http'er om til kilkbare links, og det der står i ( ) skal være linktekst. Der udover skal funktionen indsætte en target='_blank' på de urls der ikke er www.min-side.dk

Kan det lade sige gøre??
Avatar billede jonas- Nybegynder
17. februar 2002 - 15:31 #1
Øhm, tænker du på noget lignende dette:
$str = eregi_replace(
              "(http://|https://|ftp://|www.)([[:alnum:]()|/@$+-=%&,;:_\.~?!*]+)\.([[:alnum:](/#;=_~?&%]+)",
              "<a href=\"\\1\\2.\\3\">\\1\\2.\\3</a>",
              $str);
Avatar billede repsac Nybegynder
17. februar 2002 - 15:31 #2
mener der findes sådan et på enten www.mbn.dk eller på www.razor.dk - prøv lige et at søge en gang :)
Avatar billede repsac Nybegynder
17. februar 2002 - 15:34 #3
Nix... jeg huskede forkert, men sådanne færdige reg.exp.'s findes... gode og mindre gode.
Avatar billede jonas- Nybegynder
17. februar 2002 - 15:37 #4
den jeg har beskrevet er okay.
Der er jo selvfølgelig 10.000 forskellige muligheder...
Avatar billede festhest Nybegynder
17. februar 2002 - 15:48 #5
Ja Jonas, det er noget af det du har skrevet, men mangler stadig at kende forskel på intern og ekstern url
Avatar billede tipsen Nybegynder
17. februar 2002 - 16:00 #6
hehe - det bliver en gusten reg.exp. @:)
Avatar billede tipsen Nybegynder
17. februar 2002 - 16:01 #7
var det evt en (god) ide at lave en function href(url, title), som returnerer det ønskede og så bare skrive href("www.blabla.dk/asdf.php", "Det sejeste sted!") i php koden?
Avatar billede tipsen Nybegynder
17. februar 2002 - 16:02 #8
-det tager vel lang tid at parse en hel side for links...?
Avatar billede repsac Nybegynder
17. februar 2002 - 16:04 #9
=>tipsen: det gør jeg... når jeg indsætter billeder. Jeg synes det er lidt overflødigt når det kun er links. Hvis du gerne vil se mine img-funktioner så smid mig en mail som jeg kan reply'e på... :)
Avatar billede repsac Nybegynder
17. februar 2002 - 16:06 #10
=>tipsen: rigtigt set (det med at det tager tid). Jeg vil også hellere lave en funktions som gør det muligt for brugere at lave links - evt at gøre følgende:
tekst tekst [link] tekst tekst ...

Det er mere tidsbesparende, men hvis man parser sine sider én gang for alle er der jo ikke noget problem i det. Her på eksperten parser de øjensynligt det input de får via textarea'et og gemmer det parsede... :)
Avatar billede Slettet bruger
17. februar 2002 - 16:10 #11
<?php
    # Eksperten Tagster
    # Lars B. Jensen, LJWeb GmbH
    # ljweb@ljweb.com

    function string_tagster($str) {
        $str = " ".$str." ";
        $str = eregi_replace("([[:space:]{()\"'\[~#=;\&?\_])((ftp|http|https|telnet|news|nttp|nntp|file):\/\/[a-z0-9~#%@æøå\&\(\):;=\?\/\.,_-]+(\\[|\\]|[a-z0-9~#%@æøå\*\&:;.,=\?!'\|\/_\+-])+)", "\\1<A HREF=\"\\2\" TARGET=\"_blank\">\\2</A>", $str);
        $str = eregi_replace("([[:space:]{()\"'\[~#;\&?\_])(www\.[a-z0-9~#%@æøå\&\(\):;=\?!'\/\.,_-]+(\\[|\\]|[a-z0-9~#%@æøå\*\&:;.,=\?!'\|\/_\+-])+)", "\\1<A HREF=\"http://\\2\" TARGET=\"_blank\">\\2</A>", $str);
        $str = eregi_replace("([[:space:]{()\"'\[~#=;\&?\_])(ftp\.[a-z0-9~#%@æøå\&\(\):;=\?!'\/\.,_-]+(\\[|\\]|[a-z0-9~#%@æøå\&:;.,=\?!'\|\/_\+-])+)", "\\1<A HREF=\"ftp://\\2\" TARGET=\"_blank\">\\2</A>", $str);
        $str = eregi_replace("(mail:|[[:space:]{()\"'\[~#;\&?])([_\.0-9a-z-]+@([_\.0-9a-z-]+)+\.[a-z]{2,4})","\\1<A HREF=\"mailto:\\2\">\\2</A>", $str);
        return substr($str, 1);
    }

    function format_post2 ($str) {
        $str = htmlentities($str);
        $str = str_replace("&quot;", "\"", $str);
        $str = string_tagster($str);
        $str = ereg_replace("'</A>", "</A>'", $str);
        $str = ereg_replace("'\" TARGET=\"_blank\">", "\" TARGET=\"_blank\">'", $str);
        $str = ereg_replace("  ", "&nbsp; ", $str);
        $str = str_replace("\\t", "&nbsp;&nbsp;&nbsp; ", $str);
        $str = str_replace("\\r", "", $str);
        $str = str_replace("\\n", "<BR>", $str);

        # Return the result
        return $str;
    }
?>

http://www.eksperten.dk/spm/112601
Avatar billede festhest Nybegynder
19. februar 2002 - 15:52 #12
/space virker denne funktion med intern ekstern target? jeg han hvert fald ikke få den til at virke
Avatar billede Slettet bruger
19. februar 2002 - 18:24 #13
intern ekstern target... æhhh. Forstår ikke hvad du mener
Avatar billede festhest Nybegynder
19. februar 2002 - 20:03 #14
hvis jeg har et link med urlen www.min-egen-side.dk på min hjemmeside, skal der ikke være nogen target, ellers skal target være _blank, se eventelt mit spørgsmål
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