Problem mit BBCode und Links

Wenn ein http: sowie ein www. vorkomme soll, sollte es umgewandelt werden. Funktioniert aber nur bedingt richtig. Wo liegt das Problem?

Danke für eure Hilfe.


PHP:
$out = eregi_replace("^http://([a-z0-9\._-]+\.[a-z]{2,4}[^ \r\n]*)","<a href=\"http://\\1\">\\1</a>",$out);
$out = eregi_replace("www\.([a-z0-9\._-]+\.[a-z]{2,4}[^ \r\n]*)","<a href=\"http://www.\\1\">\\1</a>",$out);
 
PHP:
$out = eregi_replace("^(http://)?(www\.)?([a-z0-9\._-]+\.[a-z]{2,4}[^ \r\n]*)","<a href=\"http://\\3\">\\3</a>",$out);
 
Danke für Eure Antworten!

Wusste nicht das eregi_replace veraltet ist... was sollte man stattdessen verwenden? preg_replace? Und wie würde der Code wie ich oben beschrieben habe ich preg_replace aussehen?

Der Code von "timestamp" funktioniert leider nur bedingt. Mache ich zb. nach http://www.test.de einen Umbruch, so markiert er alles als Link. Warum auch immer. Wäre toll wenn ihr mir da noch helfen könntet...
 
Zurück