Avatar billede dragonbook Nybegynder
10. juli 2005 - 21:17 Der er 7 kommentarer og
2 løsninger

Lav tekst links til hyperlinks

Hej

Jeg henter en stak Internet adresser ind på min hjemmeside fra en database bestående af én tekst fil.

På siden vil disse links fremstå som tekst, og det er ikke muligt at klikke på dem.

Hvordan kan man ved hjælp af php konverterer disse links så de opfører sig som almindelige hyperlinks ?
Avatar billede webt Nybegynder
10. juli 2005 - 21:32 #1
bruger selv:
function url2link($str) {
  return eregi_replace("((f|ht)tps?://)([a-z0-9@:%_.~#\-\?&-]+)((\=|[a-z0-9]|\?|&|\/|\.|-|:|æ|ø|å)+){0,}","<a href=\"\\0\" target=\"_blank\">\\0</a>", $str);
}
så kører du bare dit indhold gennem den fx..
$indhold ="lala http://www.etlink.dk";
echo url2link($indhold);

og så skulle det gerne blive lavet om til links

Mvh
Martin
Avatar billede dragonbook Nybegynder
11. juli 2005 - 10:18 #2
Hej

Jeg har prøvet scriptet af og det virker hvis fint...men hvordan får jeg inkluderet min tekstfil ? jeg har prøvet at gøre som følgende:

<?PHP
function url2link($str) {
  return eregi_replace("((f|ht)tps?://)([a-z0-9@:%_.~#\-\?&-]+)((\=|[a-z0-9]|\?|&|\/|\.|-|:|æ|ø|å)+){0,}","<a href=\"\\0\" target=\"_blank\">\\0</a>", $str);
}
$indhold ="include('url.txt')";
echo url2link($indhold);
?>

men så står der bare include('url.txt') på siden.

Hvad gør jeg galt ?
Avatar billede plazm Nybegynder
11. juli 2005 - 10:20 #3
prøv
$indhold = include('url.txt');
Avatar billede plazm Nybegynder
11. juli 2005 - 10:23 #4
$lines = file("url.txt");
foreach ($lines as $line_num => $line) {
  echo url2link($line)."\n";
}
denne burde virke
Avatar billede webt Nybegynder
11. juli 2005 - 11:05 #5
Eller som PHP manualen forskriver:
function url2link($str) { //samme som før
  return eregi_replace("((f|ht)tps?://)([a-z0-9@:%_.~#\-\?&-]+)((\=|[a-z0-9]|\?|&|\/|\.|-|:|æ|ø|å)+){0,}","<a href=\"\\0\" target=\"_blank\">\\0</a>", $str);
}
function inc($fil) { //hent indhold ud vha include og output buffering
  if (is_file($fil)) { //check om den eksisterer
      ob_start(); //start output buffering
      include $fil; //inkluder
      $indhold= ob_get_contents();//hent indhold af buffer
      ob_end_clean(); //fjern indhold i buffer
      return $indhold; //returner til funktionskald
  }
  return false;
}
$str=inc("dinfil.php"); //kald vores egen funktion ellers virker den som include
echo url2link($str);//udskriv teksten men kør den gemmen url2link først

Ikke at der er noget galt med plazm's løsning overhovedet bare lige en kommentar, jo også lidt lettere at lave et funktionskald end at kopierer foreach osv hver gang det skal bruges

Mvh
Martin
Avatar billede dragonbook Nybegynder
12. juli 2005 - 09:50 #6
Hej webt og Plazm

Mange tak for hjælpen, I har været til stor hjælp :-)

Kan I ikke begge skrive et svar, så får i 30 point hver.
Avatar billede webt Nybegynder
12. juli 2005 - 10:00 #7
Det var så lidt,
Her kommer et svar fra mig :)

Ha en god varm dag :)
Martin
Avatar billede webt Nybegynder
12. juli 2005 - 10:14 #8
Og så kom svaret også :D
Avatar billede plazm Nybegynder
12. juli 2005 - 13:14 #9
svar fra mig også så da ;)
Fortsat god dag ;)
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