Avatar billede zitzo Nybegynder
09. september 2003 - 10:21 Der er 8 kommentarer

find link i streng

Jeg sidder og bixer med et forum. Jeg kunne godt tænke mig hvis strengen blev tjekket for links, og smider html tags ind, inden den bliver smidt i database.

Jeg har forsøgt mig med denne kode. Som gerne skulle tjekke strengen for tegnet *, som man så skal bruge til at starte og slutte linket. ex: *www.zitzo.dk*...

$post_lenght = strlen($forumtext);
for($n=0; $n >= $post_lenght; $n++){
  $symbol = substr($forumtext,$n,1);
  if($symbol == "*"){
    $n++;
    for($i=$n; $i == 0; $i++){
        $end_symbol = substr($forumtext,$i,1);
      if($end_symbol == "*"){
        $i = 0;
      }else{
        $link_raw = $link_raw.$end_symbol;
        $n = $i;
      }
    }
    $link = ereg_replace("http://","",$link);
    $link_http = "http://".$link;
    $full_link = "<a href='$link_http'>$link</a>";
    $forumtext = ereg_replace($link_raw,$full_link,$forumtext);
    }
}

dette virker ikke... hvis i kan finde en fejl eller har en anden ide til hvordan man kan gøre det vil jeg gerne høre nermere
Avatar billede zitzo Nybegynder
09. september 2003 - 10:23 #1
lige en taste fejl:
...
$link = ereg_replace("http://","",$link_raw);
...
Avatar billede snowball Novice
09. september 2003 - 10:24 #2
Du vil altså lave tekst om til klikbare links !?

Så prøv "tagster_lib" fra http://www.ljweb.com/usefulscripts/ - Det er den der bliver brugt her på Eksperten.

Snowball
Avatar billede zitzo Nybegynder
09. september 2003 - 10:30 #3
fedt nok... den er godt nok lidt vild.. men jeg vil da lige lege lidt med den... thx for det :)
Avatar billede zitzo Nybegynder
09. september 2003 - 10:37 #4
jepjep jeg fik det til at virke... fedt...
Avatar billede detox Nybegynder
09. september 2003 - 10:38 #5
I dit ovenstående eksempel med *www.zitzo.dk* kan du bruge preg_replace():

$search = "/\*([a-zA-Z0-9\.]+)\*/";
$rep = "<a href=\"http:/\\1\">\\1</a>";
$new = preg_replace($search,$rep,$str);
Avatar billede detox Nybegynder
09. september 2003 - 10:45 #6
Ok, der manglede lige en /

$search = "/\*([a-zA-Z0-9\.]+)\*/";
$rep = "<a href=\"http://\\1\">\\1</a>";
$new = preg_replace($search,$rep,$str);
Avatar billede zitzo Nybegynder
09. september 2003 - 10:48 #7
thx, men jeg bruger bare den fra http://www.ljweb.com/usefulscripts/
Avatar billede snowball Novice
09. september 2003 - 11:20 #8
Så laver jeg lige et svar :)

Snowball
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