R Rickard Medlem sedan maj 2001 287 inlägg Frågan 11 sep. 2003 21:57 #1 Hallå...
Sitter å funderar på en grej med str_replace...
$inlagg = str_replace(":dunno", "<IMG SRC=\"images/emoticons/dunno.gif\">", $inlagg);
Den där kodnsutten använder jag för att sätta dit lite emoteicons i en gästbok...
Men frågan är nu bara, hur får jag en länk i ett inlägg att bli till en länk.
ex. Någon skriver http://www.hej.se eller bara https://www.hej.se
hur får jag gästboken att länka det hela å lägga en <a target="_new" href="<länk>">länk</a> ?
Tacksam för hjälp.
/Rickard
Peeer Medlem sedan mars 2002 5 907 inlägg K Kenchu Medlem sedan apr. 2004 113 inlägg Den där koden i länken funkar ju inte. :S Det som skrivs efter själva länken tas ju med det också.
$text = "omg omg omg [email]swekenchu@hotmail.com[/email] affeeeaaa dsada ";
blir:
omg omg omg <a href="mailto:swekenchu@hotmail.com affeeeaaa">swekenchu@hotmail.com affeeeaaa</a> dsada
Vet någon vart felet ligger? Verkar vara rätt nice, om det skulle funka. :)
Peeer Medlem sedan mars 2002 5 907 inlägg Forumet som buggar lite. Citerar du det inlägget (med citatknappen ), så får du upp den korrekta koden. Kopiera den istället för det som du ser i tråden.
function strLinks($text) {
$text = preg_replace('%(<a\s[^>]+>[url]http://[/url][^\s]+</a>)|(<[^>]+[url]http://[/url][^>]+>)|([url]http://[/url])[^\s]+%ie',
'"$0"=="$1" || "$0"=="$2" ? "$0" : "<a target=\"_blank\" href=\"$0\">$0</a>"', $text);
$text = preg_replace("/([w.-_]+)(@)([w.-_]+)(\.)([w.-_]+)/i", "<a href=\"mailto:$0\">$0</a>",$text);
$text = preg_replace('%(<a\s[^>]+>[url]http://[/url]|[url]www.[/url][^\s]+</a>)|(<[^>]+[url]www.[/url][^>]+>)|([url]www.[/url])[^\s]+%ie',
'"$0"=="$1" || "$0"=="$2" ? "$0" : "<a target=\"_blank\" href=\"http://$0\">$0</a>"', $text);
return $text;
}
Korrekt kod ^^
K Kenchu Medlem sedan apr. 2004 113 inlägg Yeah, nu funkar det. :)
Vore kul att fatta vad som händer i koden. Vad är alla dessa "|" överallt, och alla konstiga teckenuppsättningar som "%(<a\s[^>", och vad är det med variablerna $0 och $2 :S