Nexus86 Medlem sedan okt. 2002 3 030 inlägg Frågan 8 feb. 2003 23:37 #1 Någon som har (eller kan göra) en kod som letar efter url:er i en text och länkar dessa automatiskt? Jag tittade på Mungo's script i Script - PHP men det blir ett stort fel om man skriver in med http://. Detta fick jag när jag skrev http://www.nintendo.com/
<a target="_blank" href="http://<a target="_blank" href="http://www.nintendo.com/">http://www.nintendo.com/</a>">www.nintendo.com/">http://www.nintendo.com/</a></a>
och den förstog inte www.domän.com/index.php**?foo=bar** heller.. Någon som kan göra ett som klarar båda dessa? Och eventuellt även med www. och emailadresser..
EDIT // Länk till hans script: http://www.webforum.nu/showthread.php?s=&postid=533880#post533880
N nkrantz Medlem sedan apr. 2002 830 inlägg Nexus86 Medlem sedan okt. 2002 3 030 inlägg Den fungerar inte heller ju.. Provade med samma text (http://www.nintendo.com/ ) och resultatet blev
<a href="http://www." target="_blank"><u>http://www.</u></a>nintendo.com/
Ingen som råkar sitta med något bra, fungerande script?
Matte Medlem sedan aug. 2000 2 975 inlägg Testa det här:
$text = "En länk av http://www.webforum.nu eller www.webforum.nu/showthread.php?s=&threadid=66250 eller
http://forum.webforum.nu , men inte forum.webforum.nu";
$text = preg_replace("/(?<=^|\\s)(www\\.([-a-zA-Z0-9_]+\\.)*[-a-zA-Z0-9_]+\\.[-a-zA-Z0-9_])/", "http://$1", $text);
$search = "/(?<=^|\\s)(http:\\/\\/|https:\\/\\/|ftp:\\/\\/)(([-a-zA-Z0-9_]+\\.)*[-a-zA-Z0-9_]+\\.[-a-zA-Z0-9_]{2,8}[^\\s]*)(?=\\s|$)/";
$replace = "<a href=\"$1$2\">$2</a>";
$text = preg_replace($search, $replace, $text);
echo $text;
Nexus86 Medlem sedan okt. 2002 3 030 inlägg Tackar så mycket! Nu är det bara två saker som saknas. Inte helt nödvändigt men skulle vara ytterst bra att ha. Om den kunde förstå emailadresser och
Besök min sida https://www.foo.bar .
D.v.s. punkter.
Matte Medlem sedan aug. 2000 2 975 inlägg Testa det här:
$text = preg_replace("/([-A-Za-z0-9_.]+[@][A-Za-z0-9_-]+([.][A-Za-z0-9_-]+)*[.][A-Za-z]{2,8})/", "<a href=\"mailto:$1\">$1</a>", $text);
Vad menar du med punkter?
Nexus86 Medlem sedan okt. 2002 3 030 inlägg Om man t.ex. Skriver som jag skrev, "Besök min sida https://www.foo.bar ." så ska inte sista punkten komma med i länken.
Nexus86 Medlem sedan okt. 2002 3 030 inlägg Det fungerade med en punkt på slutet på email-adressen.. :)