I'd try to do it right within the regex, like
$tekst1 = eregi_replace("((f|ht)tp://[-a-z0-9@:%.~#-?&=!|æøå]{0,57})[-a-z0-9@:%.~#-?&=!|æøå]+", "<a href=\"\0\" class=\"link-menu\" target=\"_blank\">\1</a>", $tekst1);
ftp links would end up being 63 characters only, an easy way around this would be two separate calls.
you may say that e.g. æøå are invalid in a domain, but your pattern didn't validate this either (only for the first character of the domain).
if you want to modify your pattern to validate domain and path separately, things won't work this way, but you could take a look into preg_replace_callback