Avatar billede puddelundercover Nybegynder
23. februar 2004 - 16:29 Der er 6 kommentarer og
1 løsning

Aktive links - reg exp

Hejsa,

Jeg har brug for en funktion som tjekker en tekst igennem for links (både med og uden http://) og gør disse aktive - Tricket er dog, at teksten også kan indholde links som i forvejen er aktive, og disse skal derfor ikke røres...

Nogen som har sådan en reg exp liggende?

- Magnus
Avatar billede schaefner Juniormester
23. februar 2004 - 16:45 #1
http://www.ljweb.com/usefulscripts/

tagster_lib.php burde opfylde din krav
Avatar billede schaefner Juniormester
23. februar 2004 - 16:46 #2
ellers så kan det i hvertfald rettes :)
Avatar billede puddelundercover Nybegynder
23. februar 2004 - 17:25 #3
Jo, men den analyserer ikke, om der allerede er linket til.. ja, linket... Derfor får man en <a href=... inde i den eksisterende <a href.. og så fucker det hele op ;)
Avatar billede schaefner Juniormester
23. februar 2004 - 17:51 #4
<?php
function clickableLinks($str) {
    $str = ' '.$str.' ';
    $str = preg_replace("/(\s)(ftp|http|https|telnet|news|nntp|file|irc):\/\/([a-z0-9~#%@&:;=!',_æøå\(\)\?\/\.\-\+\[\]\|\*\$\^\{\}]+)/i", "\\1<a href=\"\\2://\\3\">\\2://\\3</a>", $str);
    $str = preg_replace("/(\s|tp\:|\(|\[|\&gt;)(www\.)([a-z0-9~#%@&:;=!',_æøå\(\)\?\/\.\-\+\[\]\|\*\$\^\{\}]+)/i", "\\1<a href=\"http://\\2\\3\">\\2\\3</a>", $str);
    $str = preg_replace("/(\s|tp\:|\(|\[|\&gt;)(ftp\.)([a-z0-9~#%@&:;=!',_æøå\(\)\?\/\.\-\+\[\]\|\*\$\^\{\}]+)/i", "\\1<a href=\"ftp://\\2\\3\">\\2\\3</a>", $str);
    return substr($str, 1, -1);
}

$content = 'http://schaefner.dk eller måske <a href="http://schaefner.dk">schaefner.dk</a>';
echo clickableLinks($content);
?>

mvh:jesper.sørensen
Avatar billede puddelundercover Nybegynder
23. februar 2004 - 18:27 #5
Jo, den går hvis ikke folk nosser for meget rundt... Problemet er, at det gør de ;)

allerede ved
$content = 'http://schaefner.dk eller måske <a href="http://schaefner.dk"> http://schaefner.dk </a>';
går det galt...
Avatar billede schaefner Juniormester
23. februar 2004 - 18:45 #6
<?php
function clickableLinks($str) {
    $str = '  '.$str.'  ';
    $str = preg_replace("/[^>](\s)(ftp|http|https|telnet|news|nntp|file|irc):\/\/([a-z0-9~#%@&:;=!',_æøå\(\)\?\/\.\-\+\[\]\|\*\$\^\{\}]+)/i", "\\1<a href=\"\\2://\\3\">\\2://\\3</a>", $str);
    $str = preg_replace("/(\s|tp\:|\(|\[|\&gt;)(www\.)([a-z0-9~#%@&:;=!',_æøå\(\)\?\/\.\-\+\[\]\|\*\$\^\{\}]+)/i", "\\1<a href=\"http://\\2\\3\">\\2\\3</a>", $str);
    $str = preg_replace("/(\s|tp\:|\(|\[|\&gt;)(ftp\.)([a-z0-9~#%@&:;=!',_æøå\(\)\?\/\.\-\+\[\]\|\*\$\^\{\}]+)/i", "\\1<a href=\"ftp://\\2\\3\">\\2\\3</a>", $str);
    return substr($str, 1, -1);
}

$content = 'http://schaefner.dk eller måske <a href="http://schaefner.dk"> http://schaefner.dk </a> eller www.schaefner.dk';
echo clickableLinks($content);
?>
Avatar billede puddelundercover Nybegynder
23. februar 2004 - 19:00 #7
Jah, se så begynder det at ligne noget ;) tak
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