Hallo, Nikki,
ich habe mal verschiedene reguläre Ausdrücke, die im Netz kursieren, getestet und daraus ein eigenes Skript zum Verlinken von URLs erstellt.
Es klappt in den meisten Fällen ganz gut, ist aber noch nicht perfekt. Du kannst es ja mal testen und anpassen/verbessern (den verbesserten Code bitte ggf. mir schicken).
Grüße,
Sebastian
-------------------- schnipp --------------------
// make links clickable
// (C) sebastian.becker@berlin.de
function makeClickable($str)
{
// merged from several sources
// sebastian.becker@berlin.de
// add http:// to www.
$str = str_replace(' www.',' http://www.',$str);
// pattern
$pattern = '#(^|[^"=]{1})(http://|https://|ftp://|mailto:|news:)([^\s<>]+)([\s\n<>]|$)#sm';
// add <a href=""></a> to links, but not in <a></a>
$str = preg_replace($pattern,"\1<a href="\2\3" target="_blank">\3</a>\4", $str);
// replace mail addresses
$str = eregi_replace("(([a-z0-9-.]+)@([a-z0-9-.]+).([a-z0-9]+))","<a href="mailto:\0">\0</a>",$str);
return $str;
}
echo makeClickable("Die Domains www.google.com und www.google.de (beide ohne http://) sollten eigentlich <a href="http://www.google.de" target="_blank">www.google.de</a> (im Ursprungstext bereits verlinkt) und http://www.google.de (im Ursprungstext beide mit http://) geschrieben werden.<br><br>Post bitte an info@google.com<br><br>www, www., ftp., mailto:");
?>