Linkumwandeln funktioniert nicht korrekt

redX

Erfahrenes Mitglied
PHP:
$text = preg_replace("%(http|ftp)(.*?)(://)(.*?)(\.)(.*?)(\s|<br />)%","<a href=\"\\1\\2\\3\\4\\5\\6\" target=\"_blank\">\\1\\2\\3\\4\\5\\6\\7</a>",$text);
$text = preg_replace ("%(?<!ht_tp://|ht_tps://)(ww_w.)(.*?)(\.)(.*?)(\s|<br />)%","<a href=\"http://\\1\\2\\3\\4\" target=\"_blank\">\\1\\2\\3\\4\\5</a>",$text);

das ist mein Code um eine Url direkt in einen Link umzuwandeln.
Die erste Zeile macht es immer, sobald http://, ftp://, https:// dortsteht.
die zweite macht es immer mit den http://www..
Ich setze das ganze bei meinem GB ein. Aber sobald jemand ganz am schluss des Beitrages eine URL schreibt wird diese nicht umgewandelt da es nach Leerschlägen, Enter, Tabulatoren oder <br /> sucht.

Meine Frage nun:

Wie kann ich mit Regulären Ausdrücken angeben, es soll auch die URL umwandeln wenn nichts danach steht?

;)
 
Zuletzt bearbeitet:
Code:
$text = preg_replace("%(http|ftp)(.*?)(://)(.*?)(.)(.*?)%","<a href=\"\1\2\3\4\5\6\" target=\"_blank\">\1\2\3\4\5\6</a>",$text); 
$text = preg_replace ("%(?<!ht_tp://|ht_tps://)(ww_w.)(.*?)(.)(.*?)%","<a href=\"http://\1\2\3\4\" target=\"_blank\">\1\2\3\4\5</a>",$text);

Einfach das erwartete <br /> aus dem RegEx-String loeschen.
 
Zurück